mysql - 哪个先被删除?主键还是外键?

标签 mysql sql database

当我们删除其他表中的外键主键时,先删除哪个?第一个表中的主键还是另一个表中的外键?我在面试中被问到这个问题。请提供一些答案的原因:)

最佳答案

通常,您需要先删除外键引用,然后再删除主键。否则,外键约束将无效。

我可能猜到这就是面试官要找的答案。

但实际上,答案是“同时”。完成此操作的正常方法是使用级联删除外键引用。删除将全部发生在同一个事务中(至少在大多数数据库中),因此它们在提交之前不会生效。

如果您手动执行此操作,您通常会执行以下操作:

  • 删除外键约束。
  • 重新设置外键引用列中的值(通常为 NULL)。
  • 删除主键表中的适当行。

关于mysql - 哪个先被删除?主键还是外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770432/

相关文章:

java - 为 O/RM 系统(Hibernate)实现长期历史模式的最佳实践?

php - 在 MySQL 中按年和月分组

php - MySQL uft8_unicode_ci

python - 使用字典列表更新 SQL 表

sql - 如何将整数数组传递给 not in PostgreSQL 中的条件?

database - 在数据库中存储类型时的最大 MIMEType 长度

mysql - 非单调 SQL 查询

mysql - 带有 "contains"子句的 sql 命令不支持正则表达式

phpbb3 数据库索引太长

mysql - 一次添加新列后如何在表中插入值?