[pgsql-jp: 27951] Re: view/rule/insert

ISHIDA Akio iakio @ pjam.jpweb.net
2002年 11月 12日 (火) 16:14:33 JST


こんにちは。石田@苫小牧市です。

Mashiki さんの方法が良いように思いますが、
自身のお勉強のためにあえて pl/pgsql で書いてみました。

create function get_c1_id(text) 
  returns integer as '
declare
  id integer;
begin
  select into id c1_id from c1 where c1_name = $1;
  if not found then
    select into id nextval(''c1_c1_id_seq'');
    insert into c1 values($1, id);
  end if;
  return id;
end;
' language 'plpgsql'

create rule c1v_ins as
  on insert to c1v
  do instead
    insert into t1 values (
      (select get_c1_id(new.c1_name)),
      new.memo
    );

という感じでしょうか。

# あ、私もトリガの方が良い気がしてきた、、、

-- 
ISHIDA Akio




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