[pgsql-jp: 41627] Re: トリガ設定で間違った構文を流してからエラーが消えない

稲村暢亮 inamuran36 @ mahikari.or.jp
2014年 5月 3日 (土) 15:17:38 JST


稲村と申します。

訂正がありました。
エラー表示はtable1のみだったと記載しておりましたが、今試したところすべてのト
リガーでエラーが表示されてしまいました。
(oid部分はそのテーブルのOIDに変化)


-----Original Message-----
From: 稲村暢亮 [mailto:inamuran36 @ mahikari.or.jp]
Sent: Saturday, May 3, 2014 2:17 PM
To: 'pgsql-jp @ ml.postgresql.jp'
Subject: トリガ設定で間違った構文を流してからエラーが消えない

稲村と申します。

現在トリガー関係のエラーで悩んでおります。
お力添えをいただきたくメールしました。

環境は
Pgpool2(3.1.7)+postgresql(9.1.11)×2台(ストリーミングレプリケーション)
DB管理にPgadminを利用しております。

そのPgadminからtable1へトリガー作成する際、間違った構文を流してしまい、
Pgadminからエラーが返ってきました。
構文を修正し、トリガは設定できましたが、トリガーを再表示したときにエラーが
返ってくるようになってしまいました。
その時Pgadmin上のトリガ表示は読み込みするたびに消えたり表示されたりという状
態です。
どんな名前のトリガでも、複数個作っても同じエラーが返ってきます。

その時返ってくるエラーが
「エラーが起こりました:
LINE11 AND t..tgname='トリガ名' AND cl.oid=40238700::oid ANDcl....」

oid=40238700はtable1に紐づいたoidのようです。

ちなみに間違って流したデータは
--------------
CREATE TRIGGER table1_tg
  BEFORE INSERT UPDATE
  ON table1
  FOR EACH ROW
  EXECUTE PROCEDURE trg01;
-------------
(OR が抜けた状態で実行)

です。

運用上問題が出ているかどうかもわからず気持ち悪くて何とかしたいと思い、pgpool
の再起動、postgresの再起動、データベースサーバの再起動をしてみましたが解決せ
ず、システムテーブルを見たりしましたがよくわからずお手上げ状態になってしまい
ました。

想像するにシステムテーブルにおかしなデータが書き込まれてしまったのではないか
と思っております。

解決手段はありますでしょうか。



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