将varchar列转换为已存在数据

时间:2017-01-12 03:59:06

标签: linux postgresql ubuntu

在包含数据的表格中,我有一个varchar(255)类型的列。我在列中的数据是数字,表示每行中该列中的单个数字。我想将其数据类型转换为整数。我怎么能这么容易呢?我应该只将其类型更改为整数吗?或创建迁移以转换其中的数据?

1 个答案:

答案 0 :(得分:0)

您可以将ALTER TABLEUSING

一起使用
ALTER TABLE yourTable ALTER COLUMN col_name TYPE integer USING (col_name::integer);

请注意,只有当您 在您要转换的列中包含数字时,此功能才有效。如果您还有其他任何内容,例如空格,则需要先尝试将其删除,然后再尝试转换。

另请注意,如果Postgres中的整数类型的任何数据超出范围(即大于2147483647或小于-2147483648),转换也将失败。

阅读here进行更深入的讨论。