関数特性
言語: PLPGSQL
戻り値: integer
storeTrigger_int (trig_tabid, trig_tgname) 複製されたテーブル trig_tabid 上のトリガー trig_tgname が無効にされないように STORE_TRIGGER 事象を処理します。declare p_trig_tabid alias for $1; p_trig_tgname alias for $2; v_tab_altered boolean; begin -- ---- -- 中枢構成のロックを取得 -- ---- lock table sl_config_lock; -- ---- -- 現在のテーブルの状態(変更されたか、されれいないか)の獲得 -- ---- select tab_altered into v_tab_altered from sl_table where tab_id = p_trig_tabid; if not found then -- ---- -- 見つからないと言うエラーはここでは厳しくありません。 -- 何故なら、そのセットから購読されていません。 -- ---- return 0; end if; -- ---- -- 複製に対してテーブルが変更されていれば、元の状態をリストアします。 -- ---- if v_tab_altered then perform alterTableRestore(p_trig_tabid); end if; -- ---- -- このトリガーに対するエントリの存在の確証 -- ---- delete from sl_trigger where trig_tabid = p_trig_tabid and trig_tgname = p_trig_tgname; insert into sl_trigger ( trig_tabid, trig_tgname ) values ( p_trig_tabid, p_trig_tgname ); -- ---- -- もしあったならテーブルを複製された状態に戻す -- ---- if v_tab_altered then perform alterTableForReplication(p_trig_tabid); end if; return p_trig_tabid; end;