【发布时间】:2012-10-21 15:45:15
【问题描述】:
我有一个小表,并且某个字段包含“字符变化”类型。我正在尝试将其更改为“Integer”,但它给出了一个错误,即无法进行强制转换。
有没有办法解决这个问题,或者我应该创建另一个表并使用查询将记录带入其中。
该字段仅包含整数值。
【问题讨论】:
-
您尝试了哪些具体的 ALTER TABLE,具体的错误信息是什么?
-
@muistooshort 我尝试使用 phppgadmin 的 alter。选择列并尝试输入新的字段类型。错误是:
SQL error: ERROR: column "MID" cannot be cast to type integer -
首先是备份表。然后你可以在同一个表中创建另一个整数类型的列(比如 field2)。选择将 field1 的整数值强制转换为 field2 。然后重命名该列。
-
@Igor 但新列位于表格的末尾,对吗?我不能把它放在同一个位置吗?
-
@itsols 关心列位置通常是应用程序设计不完善的标志。您几乎总是希望使用显式命名的列和
SELECT列表,而不是依赖于列序号位置。也就是说,答案中给出的方法将保留列位置。
标签: postgresql casting postgresql-9.1 fieldtype