MYSQL插入记录时外键不能为空吗

如题所述

第1个回答  2017-01-18
可以为空,但是要看什么类型,比如:
SQL code
CREATE TABLE `a1` (
`str1` char(2) DEFAULT '' PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
CREATE TABLE `a2` (
`str2` char(2) DEFAULT NULL,
FOREIGN KEY(`str2`) REFERENCES `a1`(`str1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
insert into a1 values('');
insert into a2 values('');
select length(str1),str1 from a1;
select length(str2),str2 from a2;

query result(1 records)
length(str1) str1
0
query result(1 records)
length(str2) str2
0本回答被网友采纳
第2个回答  2019-08-08
这样当然无法插入pro表的proid的值。
因为proid是一个与表users的id字段关联的外键,只有特别为此字段(proid)指定值才可以,sql语句不会自动添加外键值的。
相似回答