前言
最近遇到一个问题,金仓数据库不支持联合主键,需要新增一个自增主键,但是原有的数据表中已有好几万条数据,手动增加不可能,写程序循环添加虽然可行,但是过于麻烦,所以有了以下方法
解决
一开始想自己写程序搞,但是我先问了下AI(Claude 3.5 Sonnet),发现真的给了一个方案,具体如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| ALTER TABLE sys_branch_struct_relation ADD COLUMN id BIGINT;
CREATE SEQUENCE sys_branch_struct_relation_seq INCREMENT BY 1 MINVALUE 1 NO MAXVALUE START WITH 1 CACHE 1;
UPDATE sys_branch_struct_relation SET id = nextval('sys_branch_struct_relation_seq');
ALTER TABLE sys_branch_struct_relation ADD CONSTRAINT sys_branch_struct_relation_pk PRIMARY KEY (id);
ALTER TABLE sys_branch_struct_relation ALTER COLUMN id SET DEFAULT nextval('sys_branch_struct_relation_seq');
ALTER TABLE sys_branch_struct_relation ADD CONSTRAINT uk_ancestor_descendant UNIQUE (ancestor, descendant);
|
我的表中原有就两个字段ancestor, descendant,因为是个关系表,没有多余的字段
经过实测,居然真的没有问题,重点是这个是国产的金仓数据库,而且AI是国外的!