db2修改字段属性,db2修改字段名
急求修改db2数据库字段属性:一字段由varchar(50)到varchar(500) ?
我使用DB2 V9.7
CONNECT TO SAMPLE;
ALTER TABLE ADMINISTRATOR.TEST ALTER COLUMN B SET DATA TYPE VARCHAR ( 500 ) ;
CONNECT RESET;
其中B原来是VARCHAR(50),直接修改成功。
db2数据库?怎么修改一个字段的数据类型
运行db2cc,在控制中心中右击要修改的表,生成DDL,将该DDL中CREATE
TABLE命令包括表名进行相应修改后,运行该命令创建符合需要的新表。
然后insert
into
newtable
select
*
from
oldtable,如果可以兼容的话,否则你需要考虑怎么修改一下。
最后删除旧表,新表改名为旧表。
希望能帮到您。
db2 唯一索引列改名
DB2中,如果某一列上有唯一性索引,那么当修改这个列的字段类型的时候,会报SQL0478N的错误。
例如,将表T2的ID列由int型修改为varchar型。如果索引不是唯一性索引,则修改没有任何报错。唯一性约束不能被修改,若想修改,只能重建。
DB2中如何将一个clob类型的字段改为varchar类型
clob类型的字段改为varchar类型的方法如下:
1、新增一列varchar2类型,varchar2类型最大4000:alter table test add(c varchar2(4000));
2、将clob列数据更新到新增列:update test set c=clob_col;
3、删除clob列:alter table test drop column clob_col;
4、将新增列名更改回原来列名:alter table test rename column c to clob_col;
db2如何修改字段
因为数据类型不同,首先需要对现有数据进行处理。
如果对表中字段顺序没有要求的话:可以先添加一个Date类型字段,把time中的值插入到新字段中,然后把time字段Drop掉,然后再添加一个类型为Date的time字段,前面新增字段的值放回来,再去掉该字段。Done。
比较复杂,可以rename
table
把现在表重命名掉,然后新增一张表。然后把数据导回来,然后删除掉rename
的那张表。
DB2_表结构修改相关语句
--删除主键
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;