
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)试试;或者干脆新建一张表格,但是建议字段不要太多太长。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)