Oracle 将旧表插入表结构一致的新表中,并添加自增主键

使用场景:旧表没有主键,但是根据需要,添加一列主键。不想改动原表的表结构,新建一张表结构相同的表,增加一列,将第一列设置为ID列,作为主键。

其中:
NEW_TABLE_NAME 新建的表名
SEQUENCE_NAME 新建的序列名
OLD_TABLE_NAME 旧表名
NEW_TABLE_ID 主键名
1.新建表
建议使用plsql工具,查看旧表的建表语句,在这个语句的基础上做出修改,执行建表语句新建表。
当然也可以使用
create table NEW_TABLE_NAME as select * from OLD_TABLE_NAME where 1=0;
复制表结构,但是复制表结构之后需要自己添加一列,作为ID列。
2.设置主键
alert table NEW_TABLE_NAME add constraint pkKey primary key NEW_TABLE_ID
3.创建序列
-- Create sequence
create sequence SEQUENCE_NAME
minvalue 1
maxvalue 9999999999
start with 1
increment by 1
cache 20;
4.插入表
insert into NEW_TABLE_NAME select SEQUENCE_NAME.nextval,t.* from OLD_TABLE_NAME t;

posted on 2020-08-25 16:41  麦田猫CC  阅读(824)  评论(0)    收藏  举报

导航