更改数据类型大小时值太长异常

时间:2017-07-08 06:56:09

标签: postgresql-9.3

我试图改变列大小但是像下面那样得到异常。实际上,列大小为64字节,但尝试更改为2个字节。

ALTER TABLE table1 ALTER COLUMN column1 type VARCHAR(2); 错误:类型字符变化的值太长(2)

我已经验证了现有数据的大小也小于2个字节。

任何人都可以帮我解决这个问题。

由于 拉梅什

1 个答案:

答案 0 :(得分:0)

即使数据大小小于2个字节,postgre仍然不允许你这样做。

您必须手动限制' varchar的大小。您可以通过执行数据的子字符串来完成此操作。当然,如果您的列已经是2个字节长,则不会产生任何副作用,否则它会将变量修剪为2个字符。

ALTER TABLE table1 ALTER COLUMN column1 type VARCHAR(2) USING substr(column1, 1, 2)

请注意,如果您想将列大小更改为更大的列,则根本不会出现任何问题。