MySQLトリガーの簡単な使用例

MySQLトリガーの簡単な使用例

この記事では、例を使用して MySQL トリガーの簡単な使用方法を説明します。ご参考までに、詳細は以下の通りです。

MySQL トリガーは、ストアド プロシージャと同様に、MySQL に埋め込まれたプログラムです。トリガーは、INSERT、UPDATE、DELETE などのイベントによってトリガーされますが、SELECT によってトリガーされることはありません。

トリガーを作成する

CREATE TRIGGER name,time,event ON table_name FOR EACH ROW trigger_stmt

例えば

次のようにコードをコピーします
各行のアカウントにINSERTする前に、トリガーins_sumを作成し、@sum = @sum + NEW.amountを設定します。

複数の実行ステートメントを持つトリガー

テーブル test1(a1 INT) を作成します。
テーブル test2(a2 INT) を作成します。
テーブル test3 を作成します (a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
テーブルtest4を作成します(
  a4 INT NOT NULL AUTO_INCREMENT 主キー、
  b4 INT デフォルト 0
);
区切り文字 //
test1 に INSERT する前にトリガー testref を作成します。
  各行の開始
    test2に挿入 a2 = NEW.a1 を設定します。
  a3 = NEW.a1 の場合、test3 から削除します。
    test4 を更新します。b4 = b4 + 1 を設定します。WHERE a4 = NEW.a1;
  終わり
  //
区切り文字 ;
test3(a3) に値 (NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL)、(NULL);
test4(a4)に値(0),(0),(0),(0),(0),(0),(0),(0),(0),(0);
//テストを開始する INSERT INTO test1 VALUES (1), (3), (1), (7), (1), (8), (4), (4);

トリガーを表示

SHOW TRIGGERS \G; //すべて表示 SELECT * FROM information_schema.TRIGGERS where TRIGGER_NAME = 'testref';

トリガーの削除

DROP TRIGGER testref;

包括的なケース

ステップ1: 人物テーブルを作成する

テーブル persons (name VARCHAR(40), num int) を作成します。

ステップ2: 売上表を作成する

テーブルsales(name VARCHAR(40), sum int)を作成します。

ステップ3: トリガーを作成する

persons に INSERT した後に トリガー num_sum を作成します。
各行に sales VALUES (NEW.name,7*NEW.num) を挿入します。

ステップ4: personsテーブルにレコードを挿入する

人物にVALUES('xiaoxiao',20),('xiaohua',69)を挿入します。
人物から*を選択します。
*FROM 売上を選択します。

MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」

この記事が皆様のMySQLデータベース設計に役立つことを願っています。

以下もご興味があるかもしれません:
  • MySQLトリガーの使用法の詳細な説明
  • MySQLトリガーの概念、原理、使用法の詳細な説明
  • MySQL のトリガーの簡単な紹介と使用例
  • MySQL トリガーとストアド プロシージャをテストする方法
  • MySQLでトリガーを作成する方法
  • MySQL 5.0 トリガーリファレンスチュートリアル
  • MySQL と SQL でトリガーを記述するさまざまな方法
  • MySQL のトリガーに関する基礎学習チュートリアル
  • MySQLトリガーの簡単な例と紹介
  • MySQLトリガーの使用例の詳細
  • MySQL トリガー構文とアプリケーション例

<<:  Node.jsを使用してホットリロードページを実装する方法の詳細な説明

>>:  ZabbixはPSK共有キーを使用してサーバーとエージェント間の通信を暗号化します。

推薦する

MySQL は正常に起動するがポートをリッスンしない場合の解決策

問題の説明MySQL が正常に起動しました。以下に示すように、 ps -ef |grep mysql...

SQL GROUP BYの詳細な説明と簡単な例

GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用​​され、1 つ以上の...

CSS3 @mediaの基本的な使い方のまとめ

//文法: @media mediatype and | not | only (メディア機能) ...

デザイナーと開発者に役立つ 9 つの超実用的な CSS のヒント

Web デザイナーの頭の中には、仕事に関連する多くの知識が詰まっている必要があります。 CSS は、...

XHTML の一般的なタグ

XHTML タグとは何ですか? XHTML タグ要素は、XHTML ドキュメントの基本的なコンポーネ...

CSSレイアウトで中央揃えレイアウトを実現する方法

1. 親コンテナーをテーブルに設定し、子をインライン要素に設定します。テキストを表示するサブコンテン...

MYSQL 演算子の概要

目次1. 算術演算子2. 比較演算子3. 論理演算子4. ビット演算子5. 演算子の優先順位1. 算...

シェル スクリプトを使用してワンクリックで MySQL 5.7.29 をインストールする方法

この記事は51CTOブログの著者wjw555の作品を参照しています。スクリプトの内容: vim イン...

mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル

目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...

JavaScriptのクローン作成についての簡単な説明

目次1. 浅いクローニング2. ディープクローニング1. 浅いクローニング浅いクローンでは配列やオブ...

JavaScript 関数のパフォーマンスを測定するさまざまな方法の比較

目次概要パフォーマンス.nowコンソール.time時間精度を短縮注意事項分割して征服する入力値に注意...

Mapper SQL ステートメント フィールドとエンティティ クラス属性名の関係は何ですか?

背景: 1. データベースに通知テーブルがある あなたは見ることができますgmt_create、通知...

CentOS 6.4 MySQL 5.7.18 のインストールと設定方法のグラフィックチュートリアル

Centos6.4 で mysql5.7.18 をインストールするための具体的な手順が全員に共有され...

カルーセル効果を実現するネイティブJavaScript

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Linux/CentOS システムでネットワーク時間を同期する 2 つの方法の詳細な説明

ハードウェア上の理由により、機械は標準時間にある程度追いつけない場合があり、その誤差は 1 か月で数...