如何修改外键?

Mah*_*ine 5 mysql foreign-keys

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

FOREIGN KEY (member) REFERENCES scores (level) ON DELETE CASCADE,
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

FOREIGN KEY (member, subject) REFERENCES scores (level, subject) ON DELETE set null,
Run Code Online (Sandbox Code Playgroud)

是否可以?

Tom*_*sky 3

您无法在单个语句中修改键,请参阅ALTER TABLE语法,其中没有可用的 ALTER CONSTRAINT。

您必须使用 2 个 ALTER TABLE 语句来完成您想要的操作。

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

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