Sql 如何减少postgres中字符变化类型的大小?

Sql 如何减少postgres中字符变化类型的大小?,sql,postgresql,Sql,Postgresql,我需要减小postgres数据库表中字符可变字段的大小 说明|字符变量500 |不为空 我正在使用这个命令 ALTER TABLE notification ALTER COLUMN description TYPE varchar(200); 这是给我的错误类型 错误:类型字符varying200的值太长 那个么,如何将字符大小从500减少到200呢 显然,该列中的值超过200个字符。首先需要截断这些值: 在ALTER TABLE语句中截断该值 ALTER TABLE notificatio

我需要减小postgres数据库表中字符可变字段的大小

说明|字符变量500 |不为空

我正在使用这个命令

ALTER TABLE notification ALTER COLUMN description TYPE varchar(200);
这是给我的错误类型

错误:类型字符varying200的值太长


那个么,如何将字符大小从500减少到200呢

显然,该列中的值超过200个字符。首先需要截断这些值:

在ALTER TABLE语句中截断该值

ALTER TABLE notification 
   ALTER COLUMN description TYPE varchar(200) USING left(description, 200);
或者,您可以先更新表,但作为ALTER table的一部分进行更新会更快:

update notification 
  set description = left(description, 200)
where length(description) > 200;
之后,可以运行ALTERTABLE语句