已经有一段时间了。
使用DB210forz/OS,我被要求将表中的特定列从十进制(7,2(更改为十进制(7,4(。听起来很简单,对吧?
alter table MySchema.MyTable
alter column myColumn
set data type decimal(7,4);
但是,DB2会返回以下错误:"为‘MYCOLUMN’列指定的属性与现有的列定义不兼容。">
我曾认为从十进制(7,2(转换为十进制(7,4(会非常简单,但DB2不同意。
除了放下桌子从头开始重新制作之外,我还有什么选择?
提前感谢!
Dave
创建一个正确类型的新列ALTER ADD COLUMN
,使用UPDATE
填充它,ALTER DROP COLUMN
填充旧列。RENAME COLUMN
,因此设置原始列的名称。
Db2不喜欢这个变化的原因是您将从99999.99 更改为999.9999
这真的是你想要的吗?从(7,2(到(9,4(只需再加两位小数,而不会丢失任何数据,这应该是Db允许的。
Db2 for i给出警告,但允许您忽略警告。。。