我想知道是否可以修改外鍵?我該如何修改外鍵?
FOREIGN KEY (member) REFERENCES scores (level) ON DELETE CASCADE,
而且我想將它更改爲:
FOREIGN KEY (member, subject) REFERENCES scores (level, subject) ON DELETE set null,
這可能嗎?
我想知道是否可以修改外鍵?我該如何修改外鍵?
FOREIGN KEY (member) REFERENCES scores (level) ON DELETE CASCADE,
而且我想將它更改爲:
FOREIGN KEY (member, subject) REFERENCES scores (level, subject) ON DELETE set null,
這可能嗎?
您不能在單個語句中修改密鑰,請參閱ALTER TABLE語法,其中沒有可用的ALTER CONSTRAINT。
您必須使用2個ALTER TABLE語句來完成您想要的操作。
使用ALTER TABLE DROP FOREIGN KEY刪除第一個中的密鑰。 使用ALTER TABLE ADD CONSTRAINT FOREIGN KEY在第二列中重新創建它。
您可以在一個事務中封裝這兩者以進行原子修改。
你試過了alter table命令嗎?
我寫了alter table teb drop foreign key;但它有這個錯誤:錯誤1005:無法創建表'nehdi。#sql-6f0_2'(errno:150) – 2011-03-15 18:07:17
@mehdi:您可以通過運行'SHOW ENGINE INNODB STATUS \ G'和讀取'最新的外鍵錯誤'部分。 – 2011-03-15 19:52:29