我试图改变列大小但是像下面那样得到异常。实际上,列大小为64字节,但尝试更改为2个字节。
ALTER TABLE table1 ALTER COLUMN column1 type VARCHAR(2); 错误:类型字符变化的值太长(2)
我已经验证了现有数据的大小也小于2个字节。
任何人都可以帮我解决这个问题。
由于 拉梅什
答案 0 :(得分:0)
即使数据大小小于2个字节,postgre仍然不允许你这样做。
您必须手动限制' varchar
的大小。您可以通过执行数据的子字符串来完成此操作。当然,如果您的列已经是2个字节长,则不会产生任何副作用,否则它会将变量修剪为2个字符。
ALTER TABLE table1 ALTER COLUMN column1 type VARCHAR(2) USING substr(column1, 1, 2)
请注意,如果您想将列大小更改为更大的列,则根本不会出现任何问题。