Oracle中给已存在的表增加自增主键
2017-09-25 00:00
225 查看
摘要: 总能遇到很多奇葩的表,比如没有任何主键,而且数据量还老大老大的。
大致方式是,创建新表,将旧表数据复制到新表,同时通过Oracle的触发器+Sequence实现主键自增;
1.创建字段相同多且只多一个字段的新表:
2.创建Sequence:
3.创建触发器(此处有坑,请勿随便空格或者缺少分号等,你可以把这个理解为一个脚本,新增可能成功,但执行就不好说了):
4.将数据从旧表插入到新表中:
大致方式是,创建新表,将旧表数据复制到新表,同时通过Oracle的触发器+Sequence实现主键自增;
1.创建字段相同多且只多一个字段的新表:
略
2.创建Sequence:
CREATE SEQUENCE XXX_SEQ INCREMENT BY 1 START WITH 1 MINVALUE 1 NOMAXVALUE NOCYCLE NOCACHE;
3.创建触发器(此处有坑,请勿随便空格或者缺少分号等,你可以把这个理解为一个脚本,新增可能成功,但执行就不好说了):
CREATE OR REPLACE TRIGGER XXX_TRIGGER BEFORE INSERT ON XXX_NEW FOR EACH ROW BEGIN SELECT XXX_SEQ.nextval INTO:new.id FROM dual; END;
4.将数据从旧表插入到新表中:
INSERT INTO XXX_NEW (C1,C2,C3) SELECT * FROM XXX;
相关文章推荐
- oracle 给已存在的表增加主键自增约束
- oracle 创建自动增加主键的表
- oracle中实现自增加主键的方法
- Oracle 创建自动增加主键的表
- oracle中实现主键的自动增加
- oracle中实现主键的自动增加
- oracle中实现主键的自动增加(csdn)
- 给表增加主键,先判断表是否存在主键
- Oracle 增删列,为列增加注释,修改主键等
- oracle增加主键列,创建序列,并自动根据序列设值,创建触发器。
- Oracle 增删列,为列增加注释,修改主键等
- oracle中实现主键的自动增加
- Oracle自增主键的添加[sequence]--表数据已存在
- Oracle判断表、列、主键是否存在的方法
- Oracle 增删列,为列增加注释,修改主键等
- day12_序列——oracle主键自动增加
- oracle利用触发器实现主键的自动增加
- oracle 创建自动增加主键的表
- oracle中实现主键的自动增加
- Oracle判断表、列、主键是否存在的方法