Mysqlトリガの一般的な操作について


    :

CREATE TRIGGER      
           ON          
FOR EACH ROW
         ;

トリガーの作成:
CREATE TRIGGER tr_seq1  AFTER INSERT on table1 FOR EACH ROW BEGIN DECLARE cn INTEGER; SELECT COUNT(galary_id) INTO cn from table2; IF cn!=0 THEN UPDATE table2 set table2.num=table2.num+2; ELSE INSERT INTO table1 VALUES(1,1,1); END IF; END;
上の内容は以下のように解釈される:記号分割を使用して、中間に位置する内容が1つの全体であることを示して、単に記号分割ではありません;tr_という名前を作成seq 1のトリガ;トリガトリガトリガイベントは、table 2にデータを挿入するにはトリガするしかない.各行に有効です.具体的な論理を開始する.変数cnを宣言します.タイプはINTEGERです.table 1のデータ数をクエリーし、変数cnに値を付与する.変数cnの値が0に等しくないか否かを判断する.上記の条件を満たすと、データベース内のnumの値を更新し、元のベースに2を追加します.そうでなければtable 1にデータを挿入する.具体的な論理終了区切り記号の末尾;分割子は末尾を宣言します.
 
ここで、トリガ名パラメータは、作成するトリガの名前を指します.
BEFOREパラメータとAFTERパラメータは、イベントの前または後に実行がトリガーされる時間を指定します.
FOR EACH ROWは、いずれかのレコード上の動作がトリガイベントを満たすとトリガがトリガーされることを示す
 
クエリー・トリガー:
testライブラリに既存のトリガをクエリーする場合は、次のように書きます.
SHOW TRIGGERS FROM database

特に、テーブル名ではなくライブラリ名です.
 
トリガの詳細をクエリーする場合は、次のようなクエリー文を使用します.
SHOW CREATE TRIGGER  tr_seq1
  

トリガーの削除:
トリガが無効になった場合は、リソースの消費を減らすために削除する必要がある場合があります.
DROP TRIGGER      ;

一般的に使われているのは、削除する前に判断して、存在するかどうかを判断すると、次のようになります.
DROP TRIGGER IF EXISTS      ;

1つのテーブルに複数のトリガを作成し、実行時に指定した順序でトリガする必要がある場合.
トリガの順序を変更するには、FOR EACH ROW句の後にFOLLOWSまたはPRECEDESを指定する必要があります.この2つの言葉の説明を見てみましょう.FOLLOWS PRECEDES
DELIMITER $$ CREATE TRIGGER  trigger_name [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON table_name FOR EACH ROW [FOLLOWS|PRECEDES] existing_trigger_name BEGIN … END$$
 
足りないところは、突っ込みを歓迎します!