【发布时间】:2020-01-04 15:05:35
【问题描述】:
我正在尝试使用子查询将数据从dname 列插入emp_danil 表。
我有这个问题:
INSERT INTO emp_danil (dname)
SELECT dept.dname
FROM dept, emp_danil demp
WHERE dept.deptno = emp_danil.deptno;
查询前的表格
+------+--------+-------+
| DATA | DEPTNO | DNAME |
+------+--------+-------+
| ... | 10 | NULL |
| ... | 20 | NULL |
| ... | 30 | NULL |
+------+--------+-------+
“部门”表
+--------+------------+----------+
| DEPTNO | DNAME | LOC |
+--------+------------+----------+
| 10 | ACCOUNTING | NEW_YORK |
| 20 | RESEARCH | DALLAS |
| 30 | SALES | CHICAGO |
+--------+------------+----------+
查询后的表格:
+------+--------+-------------+
| DATA | DEPTNO | DNAME |
+------+--------+-------------+
| ... | 10 | ACCOUNTING |
| ... | 20 | RESEARCH |
| ... | 30 | SALES |
+------+--------+-------------+
错误:
ORA-01400: 无法将 NULL 插入 ("STUDENT"."EMP_DANIL"."EMPNO")
【问题讨论】:
-
您的查询对我来说真的没有意义。我想知道您是否想要
INSERT查询(创建新记录)或UPDATE(修改现有记录)。示例数据和预期结果将有助于更好地理解您的问题。 -
样本数据和预期输出??
-
应该清楚的是,您只是在尝试填充
emp_danil.dname列,而存在一些具有not null约束的其他列。 -
INSERT表示“创建新行”。UPDATE表示“更改现有行中的列值”。