用于更新列大小的teradata查询

时间:2016-04-23 12:53:35

标签: teradata

我有一个表名"货币"它有一个列名" cur" DECIMAL类型(12,6)。我想将这个大小增加到DECIMAL(12,8)。请在Teradata中建议我查询。我不想放弃以前的数据。

2 个答案:

答案 0 :(得分:0)

不允许更改DECIMAL的精度(如果这是NUMBER,则可以。)

最好的方法可能是:

  • 使用正确的数据类型
  • 创建一个新表
  • 将旧版合并为新版
  • DROP旧的和RENAME新旧的

当然你也应该将比例增加到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放在表的“后”)。

如果您在任何地方都对列顺序进行硬编码的环境中工作,那可能是致命的!