将数组连接到现有的 postgresql 数组
concatenate an array to existing postgresql array
我有一个 postgresql 数据库,其中每一行都有一个现有的整数数组。我想将每一行的现有数组与一个新数组连接起来。我根据文档 (http://www.postgresql.org/docs/9.3/static/functions-array.html) 尝试了以下操作,但这些都不起作用:
db=> update useradds set deals=array_append(deals, {4, 5});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_append(deals, {4, 5});
^
db=> update useradds set deals=array_cat(deals, {6,7});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals, {6,7});
^
db=> update useradds set deals=array_cat(deals, {6,7});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals, {6,7});
^
db=> update useradds set deals=array_cat(deals,{6,7} );
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals,{6,7} );
^
db=> update useradds set deals=array_cat(deals,{6} );
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals,{6} );
^
db=> update useradds set deals=deals||{6,7};
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=deals||{6,7};
^
db=> update useradds set deals = deals || {6,7};
ERROR: syntax error at or near "{"
我是 运行 v. 9.3.5。这些电话有什么问题?谢谢。
您不能将数组输入为 {6,7}
。有两种可能:
SELECT ARRAY[6,7];
SELECT '{6,7}'::int[]; -- **literal** casted as int array
当您可以连接两个数组时,您必须使用 array_cat
函数或 ||
运算符:
postgres=# SELECT array_cat(ARRAY[1,2], ARRAY[3,4]);
array_cat
-----------
{1,2,3,4}
(1 row)
postgres=# SELECT ARRAY[1,2] || ARRAY[3,4];
?column?
-----------
{1,2,3,4}
(1 row)
我有一个 postgresql 数据库,其中每一行都有一个现有的整数数组。我想将每一行的现有数组与一个新数组连接起来。我根据文档 (http://www.postgresql.org/docs/9.3/static/functions-array.html) 尝试了以下操作,但这些都不起作用:
db=> update useradds set deals=array_append(deals, {4, 5});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_append(deals, {4, 5});
^
db=> update useradds set deals=array_cat(deals, {6,7});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals, {6,7});
^
db=> update useradds set deals=array_cat(deals, {6,7});
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals, {6,7});
^
db=> update useradds set deals=array_cat(deals,{6,7} );
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals,{6,7} );
^
db=> update useradds set deals=array_cat(deals,{6} );
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=array_cat(deals,{6} );
^
db=> update useradds set deals=deals||{6,7};
ERROR: syntax error at or near "{"
LINE 1: update useradds set deals=deals||{6,7};
^
db=> update useradds set deals = deals || {6,7};
ERROR: syntax error at or near "{"
我是 运行 v. 9.3.5。这些电话有什么问题?谢谢。
您不能将数组输入为 {6,7}
。有两种可能:
SELECT ARRAY[6,7];
SELECT '{6,7}'::int[]; -- **literal** casted as int array
当您可以连接两个数组时,您必须使用 array_cat
函数或 ||
运算符:
postgres=# SELECT array_cat(ARRAY[1,2], ARRAY[3,4]);
array_cat
-----------
{1,2,3,4}
(1 row)
postgres=# SELECT ARRAY[1,2] || ARRAY[3,4];
?column?
-----------
{1,2,3,4}
(1 row)