MYSQL插入记录时外键不能为空吗
发布网友
发布时间:2022-04-15 05:28
我来回答
共3个回答
懂视网
时间:2022-04-15 09:49
mysql主键冲突
主键用varchar,而且不能插入第二条,报主键冲突
热心网友
时间:2022-04-15 06:57
可以为空,但是要看什么类型,比如:
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
热心网友
时间:2022-04-15 08:15
这样当然无法插入pro表的proid的值。
因为proid是一个与表users的id字段关联的外键,只有特别为此字段(proid)指定值才可以,sql语句不会自动添加外键值的。