#postgresql
#postgresql
Вопрос:
У меня есть две таблицы, подобные следующим
Table Fruit
-- id,
-- colorIds[]
Table Color
-- id
-- name
В Table Fruit
, у меня есть следующие записи
(1, [1, 2])
В Table Color
, у меня есть следующие записи
(1, 'Red')
(2, 'Green')
(3, 'Black')
Теперь я хочу добавить цвет Black
для записи (1, [1, 2])
, чтобы это было так (1, [1, 2, 3])
.
Я пытался использовать следующий SQL, PostgreSQL
но, похоже, не работает. Любой совет? Большое вам спасибо!!!!
update Fruit f
set f.colorIds = f.colorIds || c.id
from Color c
where f.id = 1
and c.name = 'Black'
Комментарии:
1. у меня все отлично работает (после исправления
set colorIds
)2. Спасибо! работает и для меня после изменения
set f.colorIds
наset colorIds
Ответ №1:
Вы захотите использовать функцию array_append, которая добавляет элемент в массив. То есть:
UPDATE Fruit f
SET f.colorIds = array_append(f.colorIds, c.id)
FROM Color c
WHERE f.id = 1
AND c.name = 'black';