DB2将主键移动到另一列

时间:2012-03-01 13:25:09

标签: sql db2 primary-key

我有一张桌子:

create table A (
    KEY VARCHAR(1024) not null
);

其中KEY是主键。现在我想创建另一个自动增量列ID BIGINT,删除退出主键约束并将创建的列ID作为主键。

如何在不丢失数据的情况下执行此操作?

当然我可以使用临时表,但试着找到正确的方法。

2 个答案:

答案 0 :(得分:3)

ALTER TABLE A DROP PRIMARY KEY;

ALTER TABLE A ADD COLUMN ID BIGINT NOT NULL WITH DEFAULT 0;

ALTER TABLE A ALTER COLUMN ID SET GENERATED ALWAYS AS IDENTITY(START WITH 1, INCREMENT BY 1);

REORG TABLE A;

UPDATE TABLE A SET ID = DEFAULT;

ALTER TABLE A ADD PRIMARY KEY (ID);

答案 1 :(得分:1)