Как обновить поля таблицы из массива, чтобы избежать использования таблицы temp? Пользователь передает массив для переупорядочения таблицы.PostgreSql: как обновить таблицу из массива?
create TABLE items
(
id serial primary key,
name text,
select_order int
)
insert into items(name, select_order)
values
('cucumber',0),
('milk',1),
('coffee',2),
('water',3)
select * from items order by select_order;
DO
$body$
DECLARE var_array int[]:='{3,0,2,1}';
BEGIN
update items ??
END;
$body$
Окончательный результат в этом примере должны быть
select * from items order by select_order;
name select_order
------------------------
water 0
cucumber 1
coffee 2
milk 3
Может быть немного конкретнее? Как вы хотите, чтобы это «обновление» произошло? Я не могу понять это из вашего вопроса: «var_array» - это всего лишь список «integer's». – redneb
Указатель во входном массиве - это соответствующая старая позиция. Как я вижу из ответов ниже, «обыденность» - это правильный путь – Oleg