MySQL道普請便り
第124回 trigger
第121回ではevent_
今回はtriggerでデータが更新されるタイミングで動作することを確認していきます。なお,
triggerの作成
triggerを作成するにはCREATE TRIGGER構文を利用します。CREATE TRIGGER構文はCREATE TRIGGER <trigger名> <trigger_
といった形式で記述します。
trigger_BEFORE
またはAFTER
を記述し,
trigger_
trigger_
trigger_NEW.<カラム名>
とOLD.<カラム名>
を利用することで,
実際に作成して動作を確認していきましょう。num(int)のようなt1テーブルに対して,
mysql> create table t1(num int); Query OK, 0 rows affected (0.08 sec) mysql> create table t2(num int); Query OK, 0 rows affected (0.02 sec) mysql> CREATE TRIGGER trg_t1_insert AFTER INSERT ON t1 -> FOR EACH ROW INSERT INTO t2 SET num = NEW.num * 2; Query OK, 0 rows affected (0.08 sec) mysql> INSERT INTO t1 VALUES (1),(2),(3); Query OK, 3 rows affected (0.05 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> SELECT * FROM t2; +------+ | num | +------+ | 2 | | 4 | | 6 | +------+ 3 rows in set (0.00 sec)
実際にt2.SHOW TRIGGERS
構文またはINFORMATION_SHOW CREATE TRIGGER <trigger_
で,
triggerによるレプリケーションの動作
triggerを利用する際のレプリケーションの動作を確認してみましょう。
triggerを作成することで,
ROWベースのレプリケーションを実施している場合,
STATEMENTベースのレプリケーションでは,
より詳細な動作については,
triggerを利用するときの注意点
triggerはアプリケーションコードを記入しなくとも,
まず,
また,
他にも,
まとめ
今回は簡単ではありますが,
筆者としては,
バックナンバー
MySQL道普請便り
- 第138回 オンラインスキーママイグレーションツール gh-ostを使ってみよう[その1]
- 第137回 MySQLTunerを使ってチューニングの足がかりを見つけてみる
- 第136回 CHECK制約を利用してみよう
- 第135回 MySQL 8.0で追加されたoptimizer_switchのフラグについて
- 第134回 DDLと暗黙的なコミットについて
- 第133回 Partial Revokesによる権限の一部剥奪について
- 第132回 Internal Temporary Table(内部テンポラリテーブル)について[その2]
- 第131回 mysqldumpslowを使ってスロークエリログを解析してみる
- 第130回 クエリをプロファイリングしてみる
- 第129回 Internal Temporary Table(内部テンポラリテーブル)について[その1]
関連記事
- 第46回 MySQL Cluster 8.0.16 DMRリリースと開発者来日セミナー開催,PostgreSQLエンタープライズ・コンソーシアムが検証成果を公開
- 第45回 OSSコンソーシアム 第3回データベース比較セミナー開催,MySQL 8.0.16でのCHECK制約追加,PostgreSQL関連ニュース
- 第44回 MySQL Clusterのご紹介,PostgreSQL関連記事紹介
- 第41回 MySQL& PostgreSQLの2018年の主なニュース
- 第40回 「MySQL Innovation Day 2018 秋」「PostgreSQL Conference Japan 2018」開催