本文介绍了如何在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中将列数据类型从字符更改为数字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-03 21:38