PostgreSQL INSERT bigint []数组引用语法

1 postgresql syntax

我需要UPDATE现有的数字数组行.我目前仍然坚持关于引号的语法(我认为).这是我试过的查询......

测试1

WITH update_table_1 (id,column_b) AS 
(VALUES (1,'{22}'), (72,'{29, 5}')) 
UPDATE table_1 SET id = up.id, column_b = up.column_b FROM update_table_1 up 
WHERE up.id = table_1.id;
Run Code Online (Sandbox Code Playgroud)

测试2

WITH update_table_1 (id,column_b) AS 
(VALUES (1,'{"22"}'), (72,'{"29","5"}')) 
UPDATE table_1 SET id = up.id, column_b = up.column_b FROM update_table_1 up 
WHERE up.id = table_1.id;
Run Code Online (Sandbox Code Playgroud)

测试3

WITH update_table_1 (id,column_b) AS 
(VALUES (1,{22}), (72,{29, 5})) 
UPDATE table_1 SET id = up.id, column_b = up.column_b FROM update_table_1 up 
WHERE up.id = table_1.id;
Run Code Online (Sandbox Code Playgroud)

测试4

WITH update_table_1 (id,column_b) AS 
(VALUES (1,{22}), (72,{"29","5"})) 
UPDATE table_1 SET id = up.id, column_b = up.column_b FROM update_table_1 up 
WHERE up.id = table_1.id;
Run Code Online (Sandbox Code Playgroud)

Den*_*rdy 5

您需要使用强制转换,array []构造函数或两者:

select '{1,2}'::bigint[];
select array[1,2];           -- this is an int[]
select array[1,2]::bigint[];
Run Code Online (Sandbox Code Playgroud)

否则,Postgres会(正确地)抱怨未知的操作员类型等.