如何在MySQL的同一表的列中添加引用完整性?
我有一个具有以下结构的表:
Employee
-----------------------------
----[Other Columns Snipped]----
super_serv_no
serv_no (FK for super_serv_no)
如何使
serv_no
是super_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/