[pgsql-jp: 38112] pl/pgsqlのinsertファンクションについて

shige acid_rain @ hotpop.com
2007年 3月 7日 (水) 20:59:38 JST


初めまして。繁宮と申します。
PostgreSQLを勉強し始めた初心者です。よろしくお願いします。

pl/pgsqlで単一テーブルに対して複数レコードをinsertするファンクションを
作ろうとしていますが、上手くいきません。

ファンクションの引数としてanyarray?もしくは配列のtype(create type)を
使って処理をしようと検討してますが・・・。

================================================================
#テーブル定義
CREATE TABLE test(
  id character varying(5),
  name character varying(60)
)
================================================================
#タイプ定義 (不要でしょうか?)
CREATE TYPE test_type AS(
    id text,
    name text
);
================================================================
#ファンクション ※ここで複数レコードの登録をしたい。
create or replace function test_insert(test_type) RETURNS void AS '
DECLARE
    result ALIAS FOR $1;
BEGIN
   execute ''insert into test(id,name) values(result.id, result.name)'';
END;
 'LANGUAGE 'plpgsql';
================================================================
#使用方法
select test_insert(('1','tarou'));
================================================================

どのようにファンクション定義をすれば上手くいくかご教授お願いします。

過去ログの検索をしたのですが、欲しい情報に上手くたどり着けませんでした。
重複した質問になってしまっていれば、申し訳ありません。

ご教授の程、よろしくお願いします。

--------------------------
 shigemiya<acid_rain @ hotpop.com>





pgsql-jp メーリングリストの案内