PostgreSQL-如何将参数(数组)保存到单个记录中

时间:2018-08-15 15:27:02

标签: arrays postgresql parameters sql-insert insert-into

这是我的存储过程:

CREATE OR REPLACE FUNCTION save_array(arraynumbers integer[], arraystrings text[])
RETURNS void AS $$
BEGIN 
INSERT INTO employees (id, name)
VALUES (arraynumbers[0], arraystrings[0]),
       (arraynumbers[1], arraystrings[1]),
       (arraynumbers[2], arraystrings[2])
END;
$$
LANGUAGE PLPGSQL;

如何实现循环以将数组的每个索引另存为新记录?

1 个答案:

答案 0 :(得分:1)

您可以将insert ... selectunnest()一起使用。而且您不需要PL / pgSQL:

CREATE OR REPLACE FUNCTION save_array(arraynumbers integer[], arraystrings text[])
  RETURNS void 
AS $$
  insert into employees(id, name)
  select unnest(arraynumbers), unnest(arraystrings);
$$
LANGUAGE sql;