如何用字符串聚合编写pgsql更新查询?

时间:2014-08-11 13:24:01

标签: sql database postgresql

我有更新查询,将手动将字段值更改为唯一字符串,该表已经丢失了数据,id作为唯一Pkey。

所以我需要名字看起来像

mayname-id-1, 
mayname-id-2, 
mayname-id-3,     etc

我尝试使用string_agg进行更新,但这在更新查询中无效

UPDATE mytable 
SET name = string_agg('mayname-id-', id);

如何在更新查询中动态构造字符串?

3 个答案:

答案 0 :(得分:1)

以下内容如何:

UPDATE mytable 
SET name = 'mayname-id-' || CAST(id AS text)

答案 1 :(得分:1)

通常情况下,您应该 添加这样一个完全冗余的列。生成它作为功能依赖的值在运行中更清洁,更便宜。您可以使用视图或“生成的列”。详细说明:

如果需要,您甚至可以在这样的功能值上拥有唯一索引。

答案 2 :(得分:0)

使用字符串连接

UPDATE mytable SET name = 'nayname-id-' || (id :: text);