我知道,为了在依赖外键的表中插入值,您需要在该表的主键中包含数据。
以下是我的限制:
ALTER TABLE DIDACT
MODIFY (CONSTRAINT id_prof_fk FOREIGN KEY(id_prof) REFERENCES profs (id_prof));
ALTER TABLE DIDACT
MODIFY (CONSTRAINT id_course_fk FOREIGN KEY(id_course) REFERENCES courses (id_course));
接下来,我在profs和courses表中插入值:
INSERT INTO courses VALUES ('21', 'Logic', 1, 1, 5);
INSERT INTO courses VALUES ('22', 'Math', 1, 1, 4);
INSERT INTO courses VALUES ('23', 'OOP', 1, 2, 5);
INSERT INTO courses VALUES ('24', 'DB', 2, 1, 8);
INSERT INTO courses VALUES ('25', 'Java', 2, 2, 5);
INSERT INTO profs VALUES ('p1', 'Mary', 'Banks', 'Prof');
INSERT INTO profs VALUES ('p2', 'Francis', 'Steven', 'Conf');
INSERT INTO profs VALUES ('p3', 'John', 'Jobs', 'Prof');
INSERT INTO profs VALUES ('p4', 'Alex', 'Brown', 'Prof');
INSERT INTO profs VALUES ('p5', 'Dan', 'Lovelace', 'Lect');
INSERT INTO profs VALUES ('p6', 'Roxanne', 'Smith', 'Conf');
然后我尝试填充DIDACT表:
INSERT INTO didact VALUES ('p1','21');
INSERT INTO didact VALUES ('p3','21');
INSERT INTO didact VALUES ('p5','22');
但这种情况会发生:
插入didact值('p1','21')错误报告-SQL错误:ORA-02291:违反完整性约束(user.ID\u COURSE\u FK)-未找到父项02291。00000-“违反完整性约束(%s.%s)-未找到父项”*原因:外键值没有匹配的主键值*操作:删除外键或添加匹配的主键。
这些是我的表格,以防有帮助:
CREATE TABLE courses(
id_course CHAR(2),
course_name VARCHAR2(15),
year NUMBER(1),
semester NUMBER(1),
credits NUMBER(2)
)
CREATE TABLE profs(
id_prof CHAR(4),
name CHAR(10),
surname CHAR(10),
grade VARCHAR2(5)
)
CREATE TABLE didact(
id_prof CHAR(4),
id_course CHAR(4)
)
我为此挣扎了大约一个小时,但我仍然没有找到我的错误。
谢谢你。
您的表中似乎有不同的id\u课程格式。在
didact
中是id\u课程字符(4)
,在courses中是
id\u课程字符(2)
。
由于使用固定长度类型,
didact
中的值将与courses
中的值相差两个空格。
我被要求解决的最初问题是: 创建两个表:Employee:empID(PK)、empFname、empLname、deptID(FK)和Department:deptID(PK)、deptName、chairID。chairID是Employee表中的empID。在Department表中至少插入3行,在Employee表中至少插入6行。更新chairID时创建触发器,强制执行以下业务规则:一名员
我试图为和创建会话,这两个表都与相同的外键关联到登录表-但是当我为创建种子时,我得到了错误,在我的另一个问题在这个链接中,我没有以最好的方式解释,但得到了一些关于使用(党-角色-关系模型)和这段代码下面他更多的想法有关已解决的问题链接 创建表和主键 创建表和主键 创建表以及主键和外键 使用表为管理员创建会话的过程: 使用表为用户创建会话的过程: 创建管理会话时,我收到一个错误 我做错了什么?
问题内容: 嗨,我正在Oracle SQL开发人员中开发数据库,试图从另一个表访问foriegn键。我目前正在使用以下CREATE语句创建的ItemOrdered表 如您所见,我具有以下前键Ords和BeltID。 现在,当我尝试运行以下语句时 它给了我以下错误 违反-找不到父密钥02291。00000-“违反完整性约束(%s。%s)-找不到父密钥” 如果需要,我已经提供了Ords CREAT
我得到了“完整性约束(SYSTEM。FK_FACILITY)违反了父密钥未找到”错误,尽管主键在上一个表中已经明确定义。 我的确切错误是 我只想将值添加到表中,但我无法这样做。。。如果有人能帮我,那就太好了!
我遇到了一些SQL外键的问题。 下面是我的表和插入SQL。 SQL ORA-02291:违反完整性约束-未找到父键 我不知道为什么我的外键是错的?
我尝试按如下方式创建父表和子表: 我创建了两个程序来插入记录: 我已经创建了SSIS包来调用这两个过程。父记录插入成功。但是对于子表过程,我得到以下错误: “[Execute SQL Task]错误:执行查询”BEGIN GetSourceLogId(?,?输出);终止失败,出现以下错误:“违反了ORA-02291:完整性约束(PATIENTMDR.FK_SOURCELOG_PROCESSLOG)