MariaDB 10.1.12 の Federated エンジンを使用して、リモート データベースのテーブルに基づくテーブルを作成しようとしています。FederatedX実装の使用方法に関するMariaDBの指示に従って、データベースdb1
でテーブルを次のように作成します
CREATE TABLE test_table (
id int(20) NOT NULL auto_increment,
name varchar(32) NOT NULL default '',
other int(20) NOT NULL default '0',
PRIMARY KEY (id),
KEY name (name),
KEY other_key (other))
DEFAULT CHARSET=latin1;
db2
Federated エンジンを使用して 2 番目のデータベースでこのテーブルを表示したい場合は、
CREATE TABLE test_table (
id int(20) NOT NULL auto_increment,
name varchar(32) NOT NULL default '',
other int(20) NOT NULL default '0',
PRIMARY KEY (id),
KEY name (name),
KEY other_key (other)
) ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://user_x:pass_y@localhost/db1/test_table';
これはすべてMariaDBのドキュメントからコピーされたもので、うまく機能します。ただし、テーブル構造の定義を明示的に複製せずにテーブルを作成しようとすると、同じドキュメントに記載されている例
CREATE TABLE test_table ENGINE=FEDERATED DEFAULT CHARSET=latin1
CONNECTION='mysql://user_x:pass_y@localhost/db1/test_table';
MariaDB がエラーで応答する
ERROR 1113 (42000): A table must have at least 1 column
何か不足していますか、それとも個々の列を指定せずに連合テーブルを使用することはできませんか?