DB2中修改表结构

1、增加一个字段
alter table table_name add column column_name datatype
例如:db2 "alter table SUPPORT_UAPROFILE add manufacturer varchar(20)"
2、更改表得定义,将某个字段设为主键
alter table table_name add primary key (column_name)
3、把主键定义删除
alter table table_name drop primary key (column_name)
4、删除表中的字段
说明:db2数据库没有直接删除表中字段的SQL,但是可以通过多条SQL来删除表中的字段
步骤为:先创建一个临时表,将原表中的的数据插入到临时表中,然后将原表删除,把临时表改名为原名,然后增加其主键及其它约束。[color=red](注意:前提你必须了解到原表中包含的所有约束)[/color]
例子:
CREATE TABLE "DB2INST1"."TMP_PORTALSYSPARAM_DJPLH" (
"PARAMNAME" VARCHAR(64) NOT NULL,
"MODULEID" INTEGER NOT NULL,
"MODULETYPE" INTEGER NOT NULL,
"PARAMTITLE" VARCHAR(128) NOT NULL,
"PARAMVALUE" VARCHAR(750) NOT NULL,
"PARAMDESC" VARCHAR(250),
"EFFECTIVETYPE" INTEGER NOT NULL,
"VALIDATERULE" VARCHAR(1024) NOT NULL
)
IN "USERSPACE1";

ALTER TABLE "DB2INST1"."TMP_PORTALSYSPARAM_DJPLH"
DATA CAPTURE NONE
LOCKSIZE ROW
APPEND OFF
NOT VOLATILE;

INSERT INTO "DB2INST1"."TMP_PORTALSYSPARAM_DJPLH"( "PARAMNAME", "MODULEID", "MODULETYPE", "PARAMTITLE", "PARAMVALUE", "PARAMDESC", "EFFECTIVETYPE", "VALIDATERULE" )
SELECT "PARAMNAME", "MODULEID", "MODULETYPE", "PARAMTITLE", "PARAMVALUE", "PARAMDESC", "EFFECTIVETYPE", "VALIDATERULE"
FROM "DB2INST1"."PORTALSYSPARAM";

DROP TABLE "DB2INST1"."PORTALSYSPARAM";

RENAME TABLE "DB2INST1"."TMP_PORTALSYSPARAM_DJPLH" TO "PORTALSYSPARAM";

ALTER TABLE "DB2INST1"."PORTALSYSPARAM"
ADD CONSTRAINT "PK_PORTALSYSPARAM" PRIMARY KEY
("PARAMNAME", "MODULEID", "MODULETYPE");


COMMIT;

RUNSTATS ON TABLE "DB2INST1"."PORTALSYSPARAM"
AND INDEXES ALL
ALLOW READ ACCESS;

COMMIT;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值