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

PostgreSQL - How to save a parameter (array) into single records

这是我的存储过程:

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;

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

您可以将 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;