2015-01-26 4 views
-1

У меня есть база данных postgresql, для которой каждая строка имеет существующий массив целых чисел. Я хочу объединить существующий массив для каждой строки с новым массивом. Я попытался следующий за Документы (http://www.postgresql.org/docs/9.3/static/functions-array.html), но все они не работают:конкатенировать массив существующего массива postgresql

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.. Что не так с этими звонками? Спасибо.

ответ

1

Нельзя ввести массив как {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) 

http://www.postgresql.org/docs/9.4/static/arrays.html

+0

благодарит Павла, это двойные кавычки , Очень признателен. –

Смежные вопросы