DB2自增字段
db2=>altertableORGAN_NODEaltercolumnIDsetGENERATEDALWAYSASIDENTITY(STARTWITH1,INCREME...
db2 => alter table ORGAN_NODE alter column ID set GENERATED ALWAYS AS
IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE )
运行时报错:函数不受支持(原因码 = “72”)。什么意思?
我就是先新建了一个字段column_id,这个字段里还没有内容,我想把column_id设为自增字段,我尝试了几个SQL都不行 展开
IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE )
运行时报错:函数不受支持(原因码 = “72”)。什么意思?
我就是先新建了一个字段column_id,这个字段里还没有内容,我想把column_id设为自增字段,我尝试了几个SQL都不行 展开
1个回答
展开全部
你可运行控制中心,然后修改表,有很多限制的.
对于一个已经存在的字段,以前有内容了,如果你这样改,其内容必改,这可能出问题,所以DB2不支持.
建议建立一个新的自增字段.
实验结果:
先设置整型字段然后再ALTER,结果表中无记录时成功,而有记录时失败。
那么就这么做:
create table b like a;
insert into b select * from a;
drop table a;
create table a like b;
alter table a add column id int;
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE A ( A INTEGER , ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ), ID1 SMALLINT NOT NULL ) IN IBMDB2SAMPLEREL ', -1, ? );
INSERT INTO A(COL1,.....,COLN) SELECT * FROM B; 不包括A的新增自增列,就将数据导回并且ID列也自动有了值。
对于一个已经存在的字段,以前有内容了,如果你这样改,其内容必改,这可能出问题,所以DB2不支持.
建议建立一个新的自增字段.
实验结果:
先设置整型字段然后再ALTER,结果表中无记录时成功,而有记录时失败。
那么就这么做:
create table b like a;
insert into b select * from a;
drop table a;
create table a like b;
alter table a add column id int;
CALL SYSPROC.ALTOBJ ( 'APPLY_CONTINUE_ON_ERROR', 'CREATE TABLE A ( A INTEGER , ID INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1, NO CACHE ), ID1 SMALLINT NOT NULL ) IN IBMDB2SAMPLEREL ', -1, ? );
INSERT INTO A(COL1,.....,COLN) SELECT * FROM B; 不包括A的新增自增列,就将数据导回并且ID列也自动有了值。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询