異なるdatabaseにまたがるtableのcolumnに対して外部キーを張る
当たり前ですけどInnoDBの話です。
ちなみにMySQL4.1xで試したので、それ以上ならばきっと出来ると思います。
下記のようにfooって言うdatabaseにaテーブルを作る。
create database foo; create table foo.a ( id int primary key, name text ) TYPE = InnoDB; create database bar; create table bar.b ( id int primary key, a_id int not null, name text, foreign key(a_id) references foo.a(id) ) TYPE = InnoDB;
こんな感じでとりあえずtableは作れます。
insert into foo.a(id, name) values(1, 'a'); insert into bar.b(id, a_id, name) values(1, 1, 'a'); insert into bar.b(id, a_id, name) values(2, 2, 'b'); /* ちゃんと怒られます */
なるほど。こうなるとほとんどschema扱い出来ますな。