DB2 有数据的表新建(修改)自增长主键

本文档详细介绍了在已有数据的DB2表中如何新建一个自增长的主键字段。首先通过删除原有主键,创建副表保存数据,然后重构主表并添加新的非空自增主键字段,最后将副表数据还原到主表,并删除副表,完成整个过程。
摘要由CSDN通过智能技术生成
数据库一般情况下会建一个ID为表主键表和一个业务外键CODE,这样对于数据库迁移会比较方便,提高数据库扩展性。但是遇到一个比较悲剧的是ID被当做业务主键使用了,而且已经有数据,所以只能用原有ID当业务主键使用,再新建一个表主键。因为DB2不支持直接建立一个自增长非空的属性。

 -- 删除主键
alter table DB2ADMIN.SYS_AUTH_LOG_USER_OPERATION drop primary key 
GO
----创建副表
create table SYS_AUTH_LOG_USER_OPERATION_bak like SYS_AUTH_LOG_USER_OPERATION
GO
--将主表数据存入副表
insert into SYS_AUTH_LOG_USER_OPERATION_bak select * from SYS_AUTH_LOG_USER_OPERATIONGO
--重构表
call SYSPROC.ADMIN_CMD('reorg table SYS_AUTH_LOG_USER_OPERATION')
--删除主表数据
delete from SYS_AUTH_LOG_USER_OPERATION
GO
-- 增加TABLE_IDALTER TABLE DB2ADMIN.SYS_AUTH_LOG_USER_OPERATION ADD COLUMN TABLE_ID BIGINT GOCOMMENT ON COLUMN "DB2ADMIN"."SYS_AUTH_LOG_USER_OPERA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值