Oracle使用SQL插入主键序列值相同的解决办法

问题背景

insert all
into table_name (id,column1,column2,column3) values (SEQ_table_name.nextval,'123','abc','!@#')
into table_name (id,column1,column2,column3) values (SEQ_table_name.nextval,'456','def','$%^')
SELECT * FROM DUAL;

插入时提示主键冲突(ID为主键)

然后发现这时候SEQ_TABLE_NAME.nextval一直是同一个值

解决办法

insert into table_name (id,column1,column2,column3) 
SELECT SEQ_table_name.nextval,column1,column2,column3 FROM (
select '123' as column1,'abc' as column2,'!@#' as column3 FROM dual union all 
select '456' as column1,'def' as column2,'$%^' as column3 FROM dual union all )

 

 

2025-08-19 15:49:53【出处】:https://www.cnblogs.com/onejay/p/19046212

=======================================================================================

posted on 2025-08-19 15:51  jack_Meng  阅读(21)  评论(0)    收藏  举报

导航