mysql - 我该如何修改外键?

标签 mysql foreign-keys

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

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

我想把它改成:

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

这可能吗?

最佳答案

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

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

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

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

关于mysql - 我该如何修改外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5314262/

相关文章:

php - 多重插入语句

java - Hibernate @NamedNativeQuery 读取 "normal"实体写入的陈旧数据持久化

php - 在单个查询中将数组插入数据库表

mysql - 如何给MySQL表添加外键?

foreign-keys - 保存或更新 FK 关系 Sqlalchemy

php - Mysql mysql_num_rows($result);备择方案

php - 如果为空,MySQL 插入将日期设置为 30.11.-0001

php - 使用外键将值插入数据库

sql-server - SQL Server 数据库中的 ON DELETE NO ACTION 约束

mysql - 使用 CONSTRAINT 与 FOREIGN KEY 对齐