db2添加字段

db2添加字段,第1张

ALTER TABLE 表名 ADD COLUMN 字段 CHAR(1) CHECK (字段 in ('T', 'F'))

COMMENT ON column 模式名.表名.字段 IS 't和f的注释'

--删除主键

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

可以通过工具获得其DML如下:

CREATE TABLE RTTS.T1(CUSTOMER_ID CHAR(20) NOT NULL, PRODUCT_ID INTEGER NOT NULL)

接下来,要创建一个类似的表,但要多增加一个自增的ID字段,建表语句如下:

CREATE TABLE RTTS.T2(id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY(START WITH 1,INCREMENT BY 1,NO CACHE) PRIMARY KEY,CUSTOMER_ID CHAR(20) NOT NULL, PRODUCT_ID INTEGER NOT NULL)

注意id这个字段不一定非要是主键,更可以换成别的名。你完全可以根据自己情况调整的。

再接下来,需要把原有表的数据导入到新表里,采用如下语句:

INSERT INTO RTTS.T2(CUSTOMER_ID,PRODUCT_ID) SELECT CUSTOMER_ID,PRODUCT_ID FROM RTTS.T1

然后,删除掉原来的表(为安全起见,可以改名,待新表数据确认无误再删除):

drop table RTTS.T1

再将新表改名:

RENAME TABLE "RTTS"."T2" TO "T1"

最后看一眼“新的”T1表!


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存