永发信息网

DB2自增字段

答案:2  悬赏:20  手机版
解决时间 2021-03-03 21:59
  • 提问者网友:锁深秋
  • 2021-03-03 06:15
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都不行
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-03-03 06:21
你可运行控制中心,然后修改表,有很多限制的.
对于一个已经存在的字段,以前有内容了,如果你这样改,其内容必改,这可能出问题,所以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列也自动有了值。
全部回答
  • 1楼网友:第四晚心情
  • 2021-03-03 06:46
第一创建表的时候就创建自增字段,语法: connect to samples; create table t_test ( f_id bigint not null generated always as identity (start with 1, increment by 1, no cache ) , f_name varchar (10) ) ; connect reset; 第二种就是修改已有表的字段为自增字段: db2 => alter table organ_node alter column id set generated always as identity (start with 1, increment by 1, no cache )
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯