没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
1页
如下表 CREATE TABLE Course( Cno VARCHAR(4) PRIMARY KEY, Cname VARCHAR(20) NOT NULL, Cpno VARCHAR(4), Ccredit INT, FOREIGN KEY(Cpno) REFERENCES Course(Cno) ); 创建一个表,表中有一个外键,这个外键指向自己的主键,在创建表的时候是被允许的,但是在插入数据的时候,我用正常的sql语句插入数据,但报错了,如下 INSERT INTO course (cno,cname,ccredit) VALUES (1,'数据库',5,4), (2,
资源推荐
资源详情
资源评论
向存在外键的表中插入数据时出错的原因以及插入外键为空的向存在外键的表中插入数据时出错的原因以及插入外键为空的
方法方法
如下表
CREATE TABLE Course(
Cno VARCHAR(4) PRIMARY KEY,
Cname VARCHAR(20) NOT NULL,
Cpno VARCHAR(4),
Ccredit INT,
FOREIGN KEY(Cpno) REFERENCES Course(Cno)
);
创建一个表,表中有一个外键,这个外键指向自己的主键,在创建表的时候是被允许的,但是在插入数据的时候,我用正常的
sql语句插入数据,但报错了,如下
INSERT INTO course (cno,cname,ccredit) VALUES
(1,'数据库',5,4),
(2,'数学',5,2),
(4,'操作系统',1,3),
(3,'信息系统',6,4),
(5,'数据结构',7,4),
(6,'数据处理',3,2),
(7,'PASCAL语言',null,4);
这样插入数据看似无任何问题,然鹅插入不进去,报错提示外键没有default,最后想了想,原因是
外键的数据来源于主键表里的数据,也就是说主键表里如果没有这个数据外键表是插不进去的,你必须先在主键表插入进去了外键的数据来源于主键表里的数据,也就是说主键表里如果没有这个数据外键表是插不进去的,你必须先在主键表插入进去了
才能在外键表插入。主键表的主键字段不能重复哦。重复了也插不进的。才能在外键表插入。主键表的主键字段不能重复哦。重复了也插不进的。
那我就可以先把其他的数据插进去,先不插入外键,这不就行了,然鹅,报错了。原因我要插入的部分外键为空,但是写成
null也不能插入,不写也不能插入,这样就无解了。后来的解决办法是先把外键删了,插完数据再添加上外键先把外键删了,插完数据再添加上外键。建议在建表的
时候先不添加外键约束,添加完数据后再添加外键
作者:A Javaer
weixin_38611459
- 粉丝: 6
- 资源: 917
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页