
对于如兄仔一个已尘滑经存在的字段,以渣汪前有内容了,如果你这样改,其内容必改,这可能出问题,所以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列也自动有了值。
第一创建表的时候就创毕念建自增字段,语法: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 )
如果此回答对楼主有帮助,给个采纳好吗?谢谢啦
db2表字段修改
1:删除字段非空属性
alter table XXX alter column XXX drop not null
2:携烂添加字段非空属性
alter table XXX alter column XXX set not null
3:添加一个新字段
alter table XXX add column XXXX varchar(100)
4:删除一个字段
alter table XXX drop column XXX
5:增加字段的长度
alter table XXX alter column XXX set data type varchar(100)
注意:
1:不允许修改字段的名称(只能先删除,再添虚隐举加)。
2:不允许减小字段的长度。
3:不允许修改字段类型(如把 Integer 修改成 varchar)。
4:如果必须修改上三条中的情况差碧,只能重新建表(第一条有简单方法)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)