Oracle执行INSERT报ORA-01400无法插入NULL值问题咨询
报错原因
- 你误用了
INSERT语句:INSERT的作用是新增完整的员工行记录,而employee表的ID字段是带NOT NULL约束的主键,你执行的INSERT语句没有给ID字段传值,数据库会默认写入NULL,直接触发ORA-01400非空约束报错。 - 你的实际需求是给已经存在的员工更新部门ID,应该用
UPDATE语句而非INSERT语句。
正确操作示例
如果要给ID为1的员工JONES分配到IT部门(对应department表ID=1),执行语句如下:
UPDATE employee SET department_id = 1 WHERE id = 1;
如果要批量分配,比如ID前3位员工分配到SALES部门,ID4、5分配到HR部门,可以分别执行:
UPDATE employee SET department_id = 3 WHERE id IN (1,2,3); UPDATE employee SET department_id = 2 WHERE id IN (4,5);
执行完后可以用SELECT * FROM employee;核对更新结果即可。
内容的提问来源于stack exchange,提问作者bluethundr
相关产品推荐
相关产品推荐

