我有更新查询,将手动将字段值更改为唯一字符串,该表已经丢失了数据,id
作为唯一Pkey。
所以我需要名字看起来像
mayname-id-1,
mayname-id-2,
mayname-id-3, etc
我尝试使用string_agg
进行更新,但这在更新查询中无效
UPDATE mytable
SET name = string_agg('mayname-id-', id);
如何在更新查询中动态构造字符串?
答案 0 :(得分:1)
以下内容如何:
UPDATE mytable
SET name = 'mayname-id-' || CAST(id AS text)
答案 1 :(得分:1)
通常情况下,您应该 不 添加这样一个完全冗余的列。生成它作为功能依赖的值在运行中更清洁,更便宜。您可以使用视图或“生成的列”。详细说明:
如果需要,您甚至可以在这样的功能值上拥有唯一索引。
答案 2 :(得分:0)
使用字符串连接
UPDATE mytable SET name = 'nayname-id-' || (id :: text);