mysql - 如何在MySQL的同一张表中维护外键的参照完整性?

标签 mysql foreign-key-relationship

如何在MySQL的同一表的列中添加引用完整性?

我有一个具有以下结构的表:

Employee
-----------------------------
----[Other Columns Snipped]----
super_serv_no       
serv_no            (FK for super_serv_no)


如何使serv_nosuper_serv_no的外键并强制引用完整性?

最佳答案

这是一个语法示例,它将创建一个外键约束,如您所描述的(对于使用InnoDB引擎的表):

ALTER TABLE `employee` ADD CONSTRAINT 
  `FK_employee_head_serv_no` 
  FOREIGN KEY (`head_serv_no`) REFERENCES `employee` (`serv_no`) 
  ON DELETE RESTRICT ON UPDATE CASCADE


规范模式用于外键引用表的PRIMARY KEY。 (我认为MySQL更加宽松,外键可以引用任何建立索引的列,因此,至少,您需要具有前导列serv_no的索引。)通常, serv_no列上的唯一索引。)

关于mysql - 如何在MySQL的同一张表中维护外键的参照完整性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137709/

相关文章:

php - 使用 PHP 和 AJAX 计算日期选择器的日期

php - Mysql - php 上传数据 - 错误 - 1366 不正确的字符串值

python - 如何在 SQLAlchemy 中创建一个包含外键列表的字段?

具有多个多对多关系的数据库设计

python - SQLAlchemy:filter_by with like() on foreign attribute

mysql - 在 mysql 中使用 group by 生成计数数据

php - 使用php将表单中的数据插入mysql数据库

php - 从动态页面获取 DISQUS 评论数并填充 MySQL

django - 在Django Admin中链接到外键对象

mysql export sql dump alphabatically,导致导入时出现外键约束错误