Как использовать массив для вставки в таблицу в функции?
CREATE TABLE places
(
id SERIAL PRIMARY KEY
,location VARCHAR(100) NOT NULL
,timestamp TIMESTAMP
,person_id INTEGER NOT NULL REFERENCES people ON UPDATE...
);
CREATE TABLE people
(
id SERIAL PRIMARY KEY
,name VARCHAR(100) NOT NULL
);
Я пытаюсь выполнить функцию, в которой я выполняю:
SELECT function(location_name, now(), '{1,2,3}');
Это вставит 3 записи в таблицу мест для каждого person_id в массиве с тем же местоположением и отметкой времени. Основная проблема заключается в том, что длина массива может быть динамической, поэтому функция должна иметь возможность обрабатывать:
SELECT function(location_name, now(), '{3,5,7,8,10}');
Я не знаю, с чего начать создание динамической INSERT и извлечение идентификаторов из массива. Unest может использоваться для ВСТАВКИ переменных INTO в DECLARE, но динамический аспект не может быть сделан. Надеюсь, я дал это понять.