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

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

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

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

这个问题比较麻烦,从你描述的情况来看,应该是这张表的字段总大小超过了预设的数据库表空间pagesize(根据数据库版本不同,一般有4KB/8KB/32KB)。

不能直接修改表空间pagesize,所以比较麻烦,必须重建表空间和表格。

根据你的情况,建议删除不需要的字段,再增加这个varchar(80)试试;或者干脆新建一张表格,但是建议字段不要太多太长。


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

原文地址:https://54852.com/bake/7897228.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存