删除外键然后删除记录&是一种好习惯。终于把外键放回去了吗?

时间:2014-03-13 07:17:41

标签: mysql sql database

我有这个问题。我得到了下表:

employeeID - supervisorID - workerType
1          - 3            - 1
2          - 3            - 1
3          - NULL         - 1

supervisorID实际上是主键“employeeID”的外来名称。每个员工都属于workerType。

现在我要删除所有workerType=1,因此会删除employeeID=1, employeeID=2 & employeeID=3。但是mysql不允许它获得外键约束(即employeeID=3)。

另外,我不希望on delete cascade我希望拒绝非法删除(只有经理可以删除员工)。如果我允许on delete cascade那么我必须建立另一个系统来控制非法删除,但这需要更多的能量。

我正在使用旧的mysql 5.0

最好删除外键然后删除记录&最后设置了外键?

那么如何在不删除外键的情况下删除workerType=1

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您可以将FK值设置为NULL(supervisorID列),然后删除。