Sql 存在ORACLE插入错误完整性约束父项时未找到该父项
第一桌Sql 存在ORACLE插入错误完整性约束父项时未找到该父项,sql,oracle,foreign-keys,sql-insert,create-table,Sql,Oracle,Foreign Keys,Sql Insert,Create Table,第一桌 SQL> CREATE TABLE PLAN 2 ( 3 grade char(1), 4 sectionid char(10), 5 courseid char(5), 6 sin char(9), 7 constraint planPK 8 primary key (sin,sectionid), 9 constraint sinFK 10 foreign key (si
SQL> CREATE TABLE PLAN
2 (
3 grade char(1),
4 sectionid char(10),
5 courseid char(5),
6 sin char(9),
7 constraint planPK
8 primary key (sin,sectionid),
9 constraint sinFK
10 foreign key (sin)
11 references STUDENT(sin),
12 constraint sectionsFK
13 foreign key (courseid,sectionid)
14 references SECTION(sectionnum, courseid));
第二桌
CREATE TABLE SECTION
(
sectionnum char(5),
courseid char(5),
instructorName varchar(20)
constraint sectionidPK
primary key (sectionnum,courseid)
)
课程和章节存在于章节表中,但在插入值时会出错,表示找不到主键。在表
计划的定义中:
constraint sectionsFK
foreign key (courseid, sectionid)
references SECTION(sectionnum, courseid)
从这些列的名称来看,我怀疑您想要的是另一种方式:
constraint sectionsFK
foreign key (sectionid, courseid)
references SECTION(sectionnum, courseid)
列的顺序很重要,因此值的元组可以正确匹配
我还建议修复数据类型,使它们完全相同:sectionnum
是表section
中的char(5)
,因此表plan
中的sectionid
也应该是char(5)
而不是char(10)
,这表示您提供了一个SIN号(我猜是学生Id号)您的学生表中不存在。我建议你A)看看你是否能找出问题所在,B)如果你不能找出问题所在,就针对你发现的新问题发布一个新问题。当你这么做的时候,我建议你通过点击这个答案左边投票总数下面的复选标记来接受这个答案。谢谢