4

Informix データベース内のテーブルに関連付けられたトリガーを特定するにはどうすればよいでしょうか?

4

4 に答える 4

2

情報はSysTriggersおよびSysTrigBodyシステム カタログ テーブル (主に ) にありSysTriggersます。これら (および他のすべてのシステム カタログ テーブル) の説明については、Informix Guide to SQL: Reference マニュアルを参照してください。Informix 11.70 Info Centerで見つけることができます。特に、tabid(SysTables からの) は、 のテーブルのトリガーを識別しますSysTriggers

于 2012-09-18T14:47:50.657 に答える
2
 select tabname,a.* from systriggers a, systables b
where a.tabid=b.tabid and tabname="TableName" 

また

dbschema -d db -t tablename 
于 2012-09-25T08:23:51.697 に答える
1
--OBTIENE LOS TRIGGERS DE LA TABLA:
SELECT T.tabid, TRIM(T.owner) owner, T.tabname, TR.trigid, TRIM(TR.owner) tr_owner, TR.trigname, TR.event, TR.old, TR.new, TR.mode, TRIM(TR.collation) collation,
TB.datakey, TB.seqno, TB.data
FROM systables T, systriggers TR, systrigbody TB
WHERE T.tabname = 'table_name' AND TR.tabid = T.tabid AND TB.trigid = TR.trigid AND TB.datakey IN ('D', 'A')
ORDER BY TB.trigid, TB.datakey DESC, TB.seqno ASC;

--イベント:トリガーイベントのタイプ:D =トリガーの削除、I =トリガーの挿入、U =トリガーの更新、S =トリガーの選択、d = INSTEAD OF削除トリガー、i = INSTEAD OF挿入トリガー、u = INSTEAD OF更新トリガー( IDS)

--旧:更新前の値の名前。

--新規:更新後の値の名前。

--DataKey:データのタイプを指定するコード:A =本文のASCIIテキスト、トリガーされたアクション、B =本文の線形化されたコード、D =ヘッダーの英語テキスト、トリガー定義、H =ヘッダーの線形化されたコード、S =シンボルテーブルの線形化されたコード。

于 2013-01-22T14:28:44.607 に答える
1

systriggersJonathan が答えたように、他のシステム カタログ テーブルを使用できます。私はスキーマ レポート ユーティリティでそれらを使用しました: http://code.activestate.com/recipes/576621-dump-informix-schema-to-text/

このユーティリティは、Python と ODBC、または Jython と JDBC で動作します。次のようなすべてのテーブルのトリガーに関する情報が表示されます。

--- triggers ---
defbookacc  defbookacc_dtrg D
defbookacc  defbookacc_itrg I
defbookacc  defbookacc_utrg U
mc_loadman  loadman_del D

次に、各トリガーの本文を示します。

于 2012-09-19T06:18:03.930 に答える