Mysql 约束Foregin键允许空值?

Mysql 约束Foregin键允许空值?,mysql,Mysql,我有两张桌子: 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 ([ExternalCod

我有两张桌子:

 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 server报告引用中的语法错误,如何创建约束?或者,如果我的密钥(ExternalCode)可为空,是否可以在外键上插入costraint

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

如果ExternalCode列引用的是非空列,它怎么可能为空。您能提供更多上下文吗?我修改了这个答案