我想收到一些反馈,以了解我的语法是否正确。如果它是错误的,我该怎么做来改进它?
ALTER TABLE Person
ADD CONSTRAINT FK_Country
FOREIGN KEY (CID) REFERENCES Country(CID)
ON DELETE SET NULL ON UPDATE CASCADE;
我收到此错误:
无法使用 SET NULL 创建外键"FK_Country" 引用操作,因为一个或多个引用列不是 空。
错误清楚地说明了原因。删除父Country
时,不能将 null 设置为 Person.CID
,因为Person.CID
不可为空。
您有两种选择:
-
将
Person.CID
列为可为空 -
制作
ON DELETE CASCADE
而不是ON DELETE SET NULL
。这意味着当父数据(Country
(被删除时,子数据(Person
(将被删除。