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)如果你不能找出问题所在,就针对你发现的新问题发布一个新问题。当你这么做的时候,我建议你通过点击这个答案左边投票总数下面的复选标记来接受这个答案。谢谢