Mysql
有誰知道如何從一個表中製作兩個兩列外鍵?
我嘗試了以下操作,但收到一條錯誤消息。
計分錶
mysql> create table goleo( -> id int, -> nombre varchar(30), -> goles int, -> primary key (nombre, id, goles));
Query OK, 0 rows affected (0.03 sec)
最佳射手錶
mysql> create table pichichi( -> id int not null, -> nombre varchar(30) not null, -> goles int not null, -> foreign key (nombre) references goleo(nombre), -> foreign key (goles) references goleo(goles));
錯誤資訊
ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'pichichi_ibfk_1' in the referenced table 'goleo'
外鍵列必須與引用表中的主鍵列相同。如果主鍵有三列,那麼外鍵必須有三列,順序相同。不是三個單獨的外鍵。
外鍵列必須與引用表中的主鍵列相同。如果主鍵有三列,那麼外鍵必須有三列,順序相同。不是三個單獨的外鍵。
正如比爾所說,您需要將外鍵聲明為
Foreign key (nombre, id, goles) references ...
我建議使用命名約束
Constraint <name> Foreign key (nombre, id, goles) references ...
這將使處理未來的修改變得更加容易