2016-08-26 125 views
-3
insert into employees(employee_id,e_name,department_id) 
values (5, 'faizi', 6); 

insert into department(loc_id, d_name, department_id) 
values (11, 'bba',6); 

我收到以下錯誤未找到錯誤。 departmentId是employees表中的主鍵和department表中的外鍵。爲什麼我得到這個錯誤?越來越父鍵在SQL

ORA-02291:完整性約束(SYS.SYS_C003995)違反 - 父鍵沒有找到

+0

查看'employees'表的主鍵是'employee_id'。當你試圖插入'員工'表或'部門'表或兩者時,你會遇到錯誤嗎?顯示所有表的實際結構。 –

+0

department_id是employees表中的主鍵。和外鍵在部門表中。我插入值員工表中,但是當我插入部門表中,然後我得到這個錯誤 –

+0

顯示錶的實際結構。在'員工'表中'employee_id'必須是主鍵。 「部門」表的主要ID不是「department_id」是沒有意義的。 「部門」表的主要關鍵是什麼? 'loc_id'? –

回答

2

你的插入順序是錯誤的。您需要首先插入部門,然後在該部門中工作的員工

2

對於插入語句,當您嘗試插入沒有匹配父項的子項時(如由外鍵定義的),此ORA-02291錯誤很常見約束。在這種情況下,您需要將父行添加到表中,然後重新插入您的子錶行。

+0

我插入匹配值。你可以看到我在兩個表中的department_id中插入6。但是當我插入子表中。它會給出錯誤 –