违反唯一约束

问题描述 投票:0回答:1

创建表 dept (dept_id NUMBER PRIMARY KEY, dept_name VARCHAR2(50));

创建表emp(emp_id NUMBER主键,emp_name VARCHAR2(50),dept_id NUMBER, 约束 emp_fk 外键 (dept_id) 参考部门 (dept_id) );

创建序列 myseq1 NOCACHE; 现在检查一下这个陈述:

将所有内容插入 emp (emp_id, emp_name) VALUES (myseq1.nextVal, 'name1') -- name1 插入 INTO 部门(部门 ID,部门名称) VALUES (10, 'dept1') -- dept1 插入 INTO emp(emp_id、emp_name、dept_id) VALUES (myseq1.nextVal, 'name2', 10) -- name2 插入

从双选择*;

问题:在上面运行时,给我错误消息并违反了唯一约束,有人可以解释一下在哪里以及如何违反了唯一键吗?

提前致谢!

我尝试阅读Oracle支持文档,尝试在Oracle SQl Developer中运行查询。 现在我不明白该错误背后的原因。

sql oracle
1个回答
0
投票
INSERT ALL 中的

sequence.NEXTVAL 仅计算一次。 要么更改为多 INSERT,要么将sequence.NEXTVAL 包装在函数中。

© www.soinside.com 2019 - 2024. All rights reserved.