當我嘗試插入員工表時,出現錯誤:
INSERT INTO employee (department_id) VALUES (1)
Error report -
ORA-01400: cannot insert NULL into ("CYCLOPS"."EMPLOYEE"."ID")
Cyclops 是我登錄資料庫的用戶名。我創建了 2 個表。雇員表有一個外鍵,稱為department_id參考department表id列。
Name Null? Type
------------- -------- ------------
ID NOT NULL NUMBER(5) -- That's the primary key
LAST_NAME VARCHAR2(20)
SALARY NUMBER
DEPARTMENT_ID NUMBER -- That's the foreign key to the department id column
這是我的部門表
Name Null? Type
--------------- -------- ------------
ID NOT NULL NUMBER
DEPARTMENT_NAME VARCHAR2(20)
這是我的員工表上的全選:
id last_name salary
1 JONES 20000
2 SMITH 35000
3 KING 40000
4 SIMPSON 52000
5 ANDERSON 31000
這是部門表中的全選:
ID department_name
1 IT
2 HR
3 SALES
我想要做的是將 插入department_id到員工記錄中,以便我可以將他添加到部門。為什么我在這個插入上遇到錯誤?
uj5u.com熱心網友回復:
我想做的是將department_id 插入到員工記錄中,這樣我就可以將他添加到一個部門中。為什么我在這個插入上遇到錯誤?
您不需要插入新記錄,您需要更新現有記錄。
隨著INSERT INTO employee (department_id) VALUES (1)您創建一個新的行,其中僅列提到的(在這種情況下department_id)獲得的值,所有其他被給予null。
由于您的列ID被定義為NOT NULL,它會引發例外。
如果你想改變你現有的資料,你需要update像這樣的記錄
UPDATE employee SET department_id = 1 WHERE id = 1;
UPDATE employee SET department_id = 2 WHERE id = 3;
哪個會讓你
id last_name salary department_id
1 JONES 20000 1
2 SMITH 35000 (null)
3 KING 40000 2
4 SIMPSON 52000 (null)
5 ANDERSON 31000 (null)
uj5u.com熱心網友回復:
老實說,它很清楚地說明了正在發生的事情。
“員工”表具有 ID 不可為空的列
ID NOT NULL NUMBER(5)
這意味著它的值不能設定為空
命令
INSERT INTO employee (department_id) VALUES (1)
將 1 插入到 Department_id 并嘗試用空值填充其他每一列。
您至少需要提供 id 才能使其作業
INSERT INTO employee (id, department_id) VALUES (1, 1);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367874.html
標籤:甲骨文
