タイプ配列を渡すことでplpgsqlを使用してストアドプロシージャを作成し、プロシージャ内でループを実行して、各情報タイプを挿入できるようにします
CREATE TYPE info AS(
name varchar,
email_add varchar,
contact_no varchar
);
CREATE OR REPLACE FUNCTION insert_info(
info_array info[]
) RETURNS varchar AS $$
DECLARE
info_element info;
BEGIN
FOREACH info_element IN ARRAY info_array
LOOP
INSERT INTO info_table(
name,
email_add,
contact_no
) VALUES(
info_element.name,
info_element.email_add,
info_element.contact_no
);
END LOOP;
RETURN 'OK';
END;
$$ LANGUAGE plpgsql;
問題は、配列入力で関数を使用する方法がわからないことです。私はいくつかの実験をしました(いくつかのばかげた入力だけで):
SELECT insert_info(
ARRAY[('Arjay','myEmail@email.com','1234567')]
);
しかし、PostgreSQLはそれがaでrecord[]
あり、私はまだループ部分をテストしていないと言っています...
このリンクで同様の問題を発見しました:
Declare variable of composite type in PostgreSQL using %TYPE
but it did not use arrays. これが単なる重複した質問である場合、皆さんは私を正しい方向に向けることができるかもしれません!