我正在尝试将值添加到现有的整数列数组中。我正在使用此查询。
UPDATE users SET conversations_id = CONCAT(conversations_id, '{2,3}');
它给了我这个错误。
ERROR: column "conversations_id" is of type integer[] but expression is of
type text
LINE 1: UPDATE users SET conversations_id = CONCAT(conversations_id,...
^
HINT: You will need to rewrite or cast the expression.
SQL state: 42804
Character: 37
据我所知,它告诉我第二个参数是文本,但它要求以这种方式编写,就像在这里一样。
UPDATE users SET conversations_id = '{1,2,3}';
我已经尝试将第二个参数转换为数组,但我不确定如何。我也尝试将其标记为VARIADIC,但在这种情况下,我不知道该怎么做。
如何向此阵列添加新值?
答案 0 :(得分:0)
As documented in the manual将数组附加到另一个数组的运算符是||
或函数array_cat()
。对于text / varchar值,concat()
仅 。
所以你需要使用:
UPDATE users
SET conversations_id = conversations_id || '{2,3}'::int[];
或
UPDATE users
SET conversations_id = array_cat(conversations_id, '{2,3}'::int[]);