当前位置: 首页 > 知识库问答 >
问题:

O1RA-0229违反了完整性约束-未找到父密钥

宋宇
2023-03-14

SQL数据库代码:

CREATE TABLE MYBUILDING 
(
B_NUMBER NUMBER(1)      NOT NULL, 
NAME VARCHAR2(25)       NOT NULL, 
ADDRESS VARCHAR2(40)        NOT NULL, 
P_CODE VARCHAR2(6) , 
FLOOR_NUM_UP NUMBER(3)      DEFAULT '1' NOT NULL CHECK (FLOOR_NUM_UP >= 0), 
FLOOR_NUM_DOWN NUMBER(3)    DEFAULT '0' NOT NULL CHECK (FLOOR_NUM_DOWN >= 0), 
CONS_DATE DATE          NOT NULL, 
PRIMARY KEY (B_NUMBER)
); 
-------
CREATE TABLE FLOOR
(
B_NUMBER NUMBER(1)      NOT NULL,
F_NUMBER NUMBER(2)      NOT NULL CHECK (F_NUMBER >= -4 AND F_NUMBER <= 25),
SPACE_M NUMBER(4)       NOT NULL CHECK (SPACE_M > 0), 
PRIMARY KEY (B_NUMBER, F_NUMBER), 
FOREIGN KEY (B_NUMBER) REFERENCES MYBUILDING
); 
------
CREATE TABLE TENANT 
(
TENANT_NUM NUMBER(3)        NOT NULL,
TENANT_NAME VARCHAR2(40)    NOT NULL,
C_NAME VARCHAR2(40)     NOT NULL,
C_ADDRESS VARCHAR2(40),
P_CODE  VARCHAR2(6),
P_NUMBER NUMBER(12),
PRIMARY KEY (TENANT_NUM)
);        
-------
CREATE TABLE LOCATION
(
B_NUMBER NUMBER(1)      NOT NULL,
F_NUMBER NUMBER(2)      NOT NULL,
L_NUMBER NUMBER(3)      NOT NULL CHECK (L_NUMBER > 0 AND L_NUMBER < 100 ), 
SPACE_M NUMBER(4)       NOT NULL, 
RATE NUMBER(5)          NOT NULL CHECK (RATE >= 0 AND RATE <= 350), 
RENT NUMBER(4)          NOT NULL, 
S_DATE DATE, 
E_DATE DATE,
TENANT_NUM NUMBER(3),
PRIMARY KEY (L_NUMBER, F_NUMBER, TENANT_NUM),
CONSTRAINT FK_TENANT FOREIGN KEY (TENANT_NUM) REFERENCES TENANT ON DELETE SET NULL,
FOREIGN KEY (B_NUMBER, F_NUMBER) REFERENCES FLOOR 
); 

大家好!我做了一系列的桌子,我想我做的每件事都是正确的。除了位置表之外,我在所有表上输入了输入值,没有任何问题。

这就是给我的错误。

INSERT INTO LOCATION VALUES (1, 1, 1, 300, 101, 0, '01-JAN-2004', '30-JUN-2004', 1);
INSERT INTO LOCATION VALUES (1, 1, 1, 300, 101, 0, '01-JAN-2004', '30-JUN-2004', 1)

第1行错误:ORA-02291:违反完整性约束(ASSIGNMENT.FK_TENANT)-未找到父密钥。

任何帮助和提示将不胜感激。谢谢!

固定的

CREATE TABLE LOCATION(

B_NUMBER NUMBER(1)      NOT NULL,

F_NUMBER NUMBER(2)      NOT NULL,

L_NUMBER NUMBER(3)      NOT NULL CHECK (L_NUMBER > 0 AND L_NUMBER < 100 ), 

SPACE_M NUMBER(4)       NOT NULL, 


RATE NUMBER(5)          NOT NULL CHECK (RATE >= 0 AND RATE <= 350), 

RENT NUMBER(4)          NOT NULL, 

S_DATE DATE, 

E_DATE DATE,

TENANT_NUM NUMBER(3)        NULL,

PRIMARY KEY (L_NUMBER, B_NUMBER, F_NUMBER, TENANT_NUM),

FOREIGN KEY (TENANT_NUM) REFERENCES TENANT ON DELETE SET NULL,

FOREIGN KEY (B_NUMBER, F_NUMBER) REFERENCES FLOOR 

); 

共有1个答案

诸嘉澍
2023-03-14

insert语句正在尝试向列TENTANT_NUM中插入一个值,该列在TENTANT表中不存在-(Location表上有外键约束)。

 类似资料:
  • 所以这里是我的数据库: 插入表格: 批次表不断出现的错误是:ORA-02290:违反了检查约束(EJAY.batches\u DATE\u CHK) 学生表出现的错误是:ORA-02291:违反完整性约束-未找到父键 我感到困惑的是,它只显示在表格中的一些行。教职员工和课程都很好,只有这两个。如果答案很明显,我道歉,我是初学者。请帮帮忙

  • 我得到了“完整性约束(SYSTEM。FK_FACILITY)违反了父密钥未找到”错误,尽管主键在上一个表中已经明确定义。 我的确切错误是 我只想将值添加到表中,但我无法这样做。。。如果有人能帮我,那就太好了!

  • 将实体插入数据库时遇到问题。我正在使用HibernateJPA。 我有表提醒和提醒行动和每个提醒将保持当前状态的提醒行动(即。OneToOne)和交易结束每个提醒将有许多提醒操作(具有不同的状态)。 在saveOrUpdate期间,hibernate从DB获取提醒和提醒操作的顺序 但是在flush()期间,Hibernate尝试首先插入ReminderAction,并且由于ReminderActi

  • 问题内容: 嗨,我正在Oracle SQL开发人员中开发数据库,​​试图从另一个表访问foriegn键。我目前正在使用以下CREATE语句创建的ItemOrdered表 如您所见,我具有以下前键Ords和BeltID。 现在,当我尝试运行以下语句时 它给了我以下错误 违反-找不到父密钥02291。00000-“违反完整性约束(%s。%s)-找不到父密钥” 如果需要,我已经提供了Ords CREAT

  • 我试图为和创建会话,这两个表都与相同的外键关联到登录表-但是当我为创建种子时,我得到了错误,在我的另一个问题在这个链接中,我没有以最好的方式解释,但得到了一些关于使用(党-角色-关系模型)和这段代码下面他更多的想法有关已解决的问题链接 创建表和主键 创建表和主键 创建表以及主键和外键 使用表为管理员创建会话的过程: 使用表为用户创建会话的过程: 创建管理会话时,我收到一个错误 我做错了什么?

  • 有人能帮我吗?我已经创建了我所有的表和insert语句,但是我得到了这个错误。 这是我试图将数据插入的表: 这是我的插入声明: 错误: “违反了完整性约束(%s.%s)-未找到父项”(SQL Developer) 完整性约束(MS166.FK_SPECIES_ID)被侵犯-未找到父密钥(SQLPlus) 先谢谢你。