外部 kKey 约束 SQL Server



我想收到一些反馈,以了解我的语法是否正确。如果它是错误的,我该怎么做来改进它?

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不可为空。

您有两种选择:

  1. Person.CID列为可为空

  2. 制作ON DELETE CASCADE而不是ON DELETE SET NULL。这意味着当父数据(Country(被删除时,子数据(Person(将被删除。

相关内容

最新更新