冒险岛2怎么一起副本:SQL中的错误

来源:百度文库 编辑:高考问答 时间:2024/04/28 16:18:43
use ttt
create table aa1
(
aid char(8) constraint ak primary key,
aname char(4),
aold int not null,
)
create table aa2
(
bid char(8) constraint fk FOREIGN KEY references aa1(aid),
bname char(4),
bold int not null,
)

插入insert aa2(bid,bname,bold) values('aaa','草儿',8)就报错

--INSERT 语句与 COLUMN FOREIGN KEY 约束 'fk' 冲突。该冲突发生于数据库 'ttt',表 'aa1', column 'aid'。
语句已终止。

不加外健约束字段
insert aa2(bname,bold) values('草儿',8)

select * from aa2

显示出来的bid为NULL,我在aa1输入数据后,还是一样为NULL.而aa2应该跟aa1的aid一样,怎么办啊?
换成'aaa'还是不行,迷茫~~

你的排错方法确实有问题。

第一种情况的时候,发生错误的原因是aa2受外键约束,FOREIGN KEY 约束要求(aa2)列(bid)中的每个值在被引用表(aa1)中对应的被引用列(aid)中都存在。而你的aa1中的数据真的符合这个条件吗?建议你排错时先考虑一下这个问题,如果这个问题不存在的话,再找其他原因。

我估计只要aa1中的aid列有了数据'aaa',你的问题就解决了,你试试看。

insert aa2(bname,bold) values('草儿',8) 时

你没有插入BID的值所以必然是NULL

insert aa2(bid,bname,bold) values('aaa','草儿',8)时

插入的BID值'aaa'必须在主键里存在才可以被插入