Warm tip: This article is reproduced from serverfault.com, please click

mysql-如何修改外键?

(mysql - how can i modify foreign key?)

发布于 2011-03-15 15:47:35

我想知道是否可以修改外键?

FOREIGN KEY (member) REFERENCES scores (level) ON DELETE CASCADE,

我想将其更改为:

FOREIGN KEY (member, subject) REFERENCES scores (level, subject) ON DELETE set null,

是否可以?

Questioner
Mahdi_Nine
Viewed
0
Tom Tresansky 2011-03-16 00:00:10

你不能在单个语句中修改键,请参见ALTER TABLE语法,其中没有ALTER CONSTRAINT。

你必须使用2条ALTER TABLE语句来完成所需的操作。

使用ALTER TABLE DROP FOREIGN KEY删除第一个密钥。使用ALTER TABLE ADD CONSTRAINT FOREIGN KEY在第二列中使用新列重新创建它。

你可以将两者封装在单个事务中以进行原子修改。