我想知道是否可以修改外键?
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 teb drop外键;但它具有以下错误:错误1005:无法创建表'nehdi。#sql-6f0_2'(errno:150)
@mehdi:您可以通过运行
SHOW ENGINE INNODB STATUS\G
和阅读本LATEST FOREIGN KEY ERROR
节来获取有关该错误的详细信息。