数据库一般情况下会建一个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