如何降低邮政格雷斯的字符变化类型的大小



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

描述|角色变化(500(|不是null

我正在使用此命令

ALTER TABLE notification ALTER COLUMN description TYPE varchar(200);

它给我这种错误

错误:值太长而对于类型字符变化(200(

那么,如何降低字符的大小从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;

之后,您可以运行ALTER TABLE语句

最新更新