oracle同一张表数据复制如何实现?

用insert into 表A select * from 表A 这种方式会出现id唯一性约束错误,但是用insert into 表A(字段1) select 字段1 from 表A 又会出现id为null的错误,不知道如何才能实现同一张表的数据复制,一个语句能实现吗?还是要写个过程才行?

5个回答

insert into 表A(id,字段...) select 序列名.nextval, 字段... from 表A;

这样可以不?

malie1981
malie1981 确实可以,很久没搞数据库id自增都忘了
4 年多之前 回复

怎么都是表A????

你设置了ID为主键? 设了ID用序列来增加吗?

malie1981
malie1981 是id自增的,忘了自增的写法了,以为不写id也会自增
4 年多之前 回复

同一张表的数据进行辅助没有意义吧?

你这么写明显就是冲着违反唯一性约束去的。
创建一个别名表把数据复制不可以吗?
create table 表B as select * from 表A

malie1981
malie1981 是的,忘了oracle的id自增方式了,可能跟sql数据库搞混了,以为只要插入内容id就会自己添加
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问