我目前在postgresql中有一个名为companies
的表
companies
有一个name
列,其长度为30
,但现在我想将列的长度减少到20
个字符,但不幸的是我在该列中有一些条目最长25-30。任何人都可以建议我如何减少列的大小而不丢失任何数据输入?
这是我到目前为止所尝试的:
alter table companies alter COLUMN name type varchar(20);
但我明白了:
错误:类型字符变化的值太长(20)
答案 0 :(得分:2)
答案 1 :(得分:2)
您可以剪切超过20个字符的名称:
update companies
set name = substr(name, 1, 20)
where length(name) > 20
alter table companies alter column name type varchar(20);