本文介绍了如何在PostgreSQL 8.4中将列数据类型从字符更改为数字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用以下查询:
ALTER TABLE presales ALTER COLUMN code TYPE numeric(10,0);
更改列的数据类型为字符(20)
到 numeric(10,0)
,但出现错误:
to change the datatype of a column from character(20)
to numeric(10,0)
but I am getting the error:
推荐答案
您可以尝试使用:
You can try using USING
:
因此这可能有效(取决于您的数据):
So this might work (depending on your data):
alter table presales alter column code type numeric(10,0) using code::numeric;
-- Or if you prefer standard casting...
alter table presales alter column code type numeric(10,0) using cast(code as numeric);
如果您在代码中有任何东西
不能转换为数字;如果使用失败,则必须手动清理非数字数据,然后再更改列类型。
This will fail if you have anything in code
that cannot be cast to numeric; if the USING fails, you'll have to clean up the non-numeric data by hand before changing the column type.
这篇关于如何在PostgreSQL 8.4中将列数据类型从字符更改为数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!