Oracle sql如何从一个表中复制到另一个表中?(主键要重新生成)

时间:2022-01-07 21:03:41
我就是要把一个表中的数据复制到另一个表中,但是主键要重新生成?


Insert Into copyuser(PROTOCOLNO,MANAGECOM,RISKCODE,username,age) (Select  protocolno,MANAGECOM, RISKCODE,username,age From test_user);
这样做是复制了,但是主键没有重新生成,求高手!!!!!

6 个解决方案

#1


给copyuser建个sequence,插的时候Insert Into copyuser(ID,PROTOCOLNO,MANAGECOM,RISKCODE,username,age) (Select (查询你对应sequence的next)protocolno,MANAGECOM, RISKCODE,username,age From test_user);

#2


insert into 新表 select * from 旧表 

#3


insert into 复制数据的表名 select sequence,字段1,字段2..... from 表名,你的主键可以根据序列自动生成.

#4


create table 新表 as select * from 旧表 
貌似是这种还是上面一种吧。。忘记了。。你自己试试吧。。

#5


群主,你问题最后怎么解决的?

#6


insert into test1(id,name) select TestIncrease_Sequence.Nextval,name from test 



CREATE SEQUENCE TestIncrease_Sequence 
INCREMENT BY 1--每次加几个 
START WITH 1--从1开始计数 
NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 
NOCYCLE--一直累加,不循环 
CACHE 10; 


#1


给copyuser建个sequence,插的时候Insert Into copyuser(ID,PROTOCOLNO,MANAGECOM,RISKCODE,username,age) (Select (查询你对应sequence的next)protocolno,MANAGECOM, RISKCODE,username,age From test_user);

#2


insert into 新表 select * from 旧表 

#3


insert into 复制数据的表名 select sequence,字段1,字段2..... from 表名,你的主键可以根据序列自动生成.

#4


create table 新表 as select * from 旧表 
貌似是这种还是上面一种吧。。忘记了。。你自己试试吧。。

#5


群主,你问题最后怎么解决的?

#6


insert into test1(id,name) select TestIncrease_Sequence.Nextval,name from test 



CREATE SEQUENCE TestIncrease_Sequence 
INCREMENT BY 1--每次加几个 
START WITH 1--从1开始计数 
NOMAXVALUE--不设置最大值,设置最大值:maxvalue9999 
NOCYCLE--一直累加,不循环 
CACHE 10;