首页 > 解决方案 > 约束 Foregin Key 允许为空?

问题描述

我有这两张表:

 Table1
ID,int(Key) not null
Name,nvarchar not null

Table2
MyCode, int(key) not null
Year, int(key) not null
ExternalCode,int(Fkey) null

约束

ALTER TABLE "Table2" WITH CHECK 
ADD CONSTRAINT"FK_Table2_Table1_ExternalCode" CHECK ([ExternalCode] IS NOT NULL) REFERENCES [Table1] (ID) 
ALTER TABLE "Table2" CHECK CONSTRAINT "FK_Table2_Table1_ExternalCode";

SQL 服务器在 REFERENCES 中报告语法错误,如何创建约束?或者更确切地说,如果我的键(ExternalCode)可以为空,是否可以在外键上插入约束?

编辑... Table2 索引是 MyCode,year,ExternalCode,在某些由应用程序的配置参数决定的条件下,Table1 可以为空,并且无法向其写入记录,因此在这些情况下 ExternalCode 可以为空,在其他情况下或当 Table1 有记录时(为什么不在我修改该条件后立即在 Table1 上写入记录)

标签: mysql

解决方案


推荐阅读