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)
是否可以?
您无法在单个语句中修改键,请参阅ALTER TABLE语法,其中没有可用的 ALTER CONSTRAINT。
您必须使用 2 个 ALTER TABLE 语句来完成您想要的操作。
使用 ALTER TABLE DROP FOREIGN KEY 删除第一个中的键。使用 ALTER TABLE ADD CONSTRAINT FOREIGN KEY 在第二个表中使用新列重新创建它。
您可以将两者封装在单个事务中以进行原子修改。