我有一个表名“货币”,它有一个小数点(12,6)类型的列名"cur“。我想把这个大小增加到十进制(12,8)。请建议我在Teradata中查询这个问题。我不想泄露以前的数据。
发布于 2016-04-23 13:06:40
不允许更改十进制的精度(如果这是一个NUMBER,则可以)。
最好的办法可能是:
当然,您还应该将小数位数提高到十进制(14,8),否则可能会出现数字溢出错误。
发布于 2020-10-16 21:28:40
Update:感谢@denoeth给出的简单重命名temp列的提示。比需要双拷贝要好得多。
或者通过临时列:
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放到表的“后退”位置)。
如果您的工作环境中的列排序是硬编码在任何地方,这可能是致命的!
https://stackoverflow.com/questions/36811094
复制相似问题