我有一个表名"货币"它有一个列名" cur" DECIMAL类型(12,6)。我想将这个大小增加到DECIMAL(12,8)。请在Teradata中建议我查询。我不想放弃以前的数据。
答案 0 :(得分:0)
不允许更改DECIMAL的精度(如果这是NUMBER
,则可以。)
最好的方法可能是:
当然你也应该将比例增加到DECIMAL(14,8),否则你可能会出现数字溢出错误
答案 1 :(得分:0)
更新:感谢@denoeth提供有关仅重命名temp
列的提示。比需要 double 副本要好得多。
或通过临时列:
ALTER TABLE My.Table ADD temp varchar(100);
UPDATE My.Table SET temp = my_column;
ALTER TABLE My.Table DROP my_column;
ALTER TABLE My.Table RENAME temp TO my_column;
这将更改表的列布局(将my_column
放在表的“后”)。
如果您在任何地方都对列顺序进行硬编码的环境中工作,那可能是致命的!