如何向现有表添加串联列?

Jul*_*aga 3 sql postgresql pgadmin

我正在尝试这个表达式,但我没有找到我的语法错误的地方:

alter table "TableName"
add column "NameColumn" as concat(ColumnA,ColumnB,ColumnC)
Run Code Online (Sandbox Code Playgroud)

所有三个字段都是字符变化的。

Gor*_*off 8

问题是您希望在添加列后进行更新:

alter table "TableName" add column "NameColumn" varchar(255);  -- or whatever

update "TableName
    set "NameColumn" = concat(ColumnA, ColumnB, ColumnC);
Run Code Online (Sandbox Code Playgroud)

Postgres 不直接支持计算列。还有各种更麻烦的解决方法,其中一些是 Erwin Brandstetter在这里建议的。

  • 可能应该注意的是,这不是计算列,因此表中的任何新记录都需要包含相同的串联来填充新列。最好在表上创建一个视图,以便 (a) 自动连接和 (b) 不存储冗余数据。 (3认同)