我有以下父表:複合外鍵
create table A(
a int(64) unsigned not null,
b set('a', 'b', 'c') not null default '',
c set('d', 'e') not null default '',
primary key (a,b,c)
)
而且孩子:
create table B(
d int(64) unsigned not null auto_increment,
a int(64) unsigned not null,
c set('d', 'e') not null default '',
primary key (d),
key fk1 (a,c),
constraint fk1 foreign key (a, c) references (a, c)
)
但後來我得到一個FK錯誤上創建mysql日誌中的子表:
表的外鍵約束出錯外鍵(a,c)引用 A(a,c):無法找到引用表中 引用列顯示爲第一列的索引,或 表中的列類型與被引用表的約束不匹配。
我的SQL有什麼不正確?
圍繞列名稱有單引號。我認爲這是一個錯字,並投票結束這些問題。 –
@GordonLinoff不,我不認爲這是一個錯字。 Ty用於格式化 – user1561108
1.引用的表名缺失。 2.所引用的表格上沒有可以支持FK的索引。 3.在相同的列上引用沒有唯一索引的列(對於引用的表)是一種奇怪的設計。 –