DB2_表结构修改相关语句

DB2_表结构修改相关语句,第1张

--删除主键

ALTER TABLE EXP.OLTP_TRANSFERS DROP PRIMARY KEY

COMMIT

--新增主键

ALTER TABLE EXP.OLTP_TRANSFERS ADD CONSTRAINT OLTP_TRANSFERS_PK PRIMARY KEY(COLUMN_NAME)

COMMIT

--添加索引

CREATE /*UNIQUE唯一*/ INDEX EXP.OLTP_TRANSFERS_IDX_1

  ON EXP.OLTP_TRANSFERS ( COLUMN_NAME ASC )

  ALLOW REVERSE SCANS

  COMPRESS NO INCLUDE NULL KEYS

COMMIT

--删除索引

DROP INDEX EXP.OLTP_TRANSFERS_IDX_1

COMMIT

--添加字段

ALTER TABLE EXP.OLTP_TRANSFERS ADD COLUMN COLUMN_NAME VARCHAR(10)

COMMIT

--设置非空,需要重整

ALTER TABLE EXP.OLTP_TRANSFERS ALTER COLUMN COLUMN_NAME  SET NOT NULL

COMMIT

--删除字段,需要重整表

ALTER TABLE EXP.OLTP_TRANSFERS DROP COLUMN COLUMN_NAME CASCADE

COMMIT

--重整表

REORG TABLE EXP.OLTP_TRANSFERS

COMMIT

第一创建表的时候就创建自增字段,语法:

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 )

这个是不能做到的,除非把表删除重新创建的!

原理是这样子的:当你创建表时系统会记录下你的SEQ-ID,就是字段的顺序号,这个是根据字段先后顺序来生成的,系统默认显示的时候也是根据这个来的,你如果加个字段,他会根据SEQ_ID的最大值产生一个SEQ_ID+1的值。

因此当你看到的时候这个字段默认是在最后的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11750767.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存