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共有キーを使用してサーバーとエージェント間の通信を暗号化します。

推薦する

HTML と CSS を書くための 6 つの最も効果的な方法

この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...

安全な構成のためにDockerでTLSを有効にする手順

序文以前、Docker の 2375 Remote API を有効にしていました。会社のセキュリティ...

JS を使用して HTML で回転するクリスマスツリーを実装する

<!DOCTYPE ヘムル パブリック> <html> <ヘッド&g...

シンプルな虫眼鏡効果を実現するJavaScript

大きな箱の中に写真があります。マウスをその上に置くと、半透明のマスク レイヤーが表示されます。マウス...

Vue再帰コンポーネントの簡単な使用例

序文多くの学生は既に再帰に精通していると思います。アルゴリズムの問​​題を解決するために再帰がよく使...

js+ca​​nvas でコードレイン効果を実現

この記事では、js+ca​​nvasコードの雨効果の具体的なコードを参考までに共有します。具体的な内...

MySQL ストアド プロシージャで case ステートメントを使用する詳細な例

この記事では、例を使用して、MySQL ストアド プロシージャでの case ステートメントの使用方...

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

Redux Toolkit で Redux を簡素化する方法

目次Redux Toolkitが解決する問題何が含まれていますか? Redux Toolkit AP...

Docker の 4 つのネットワーク タイプの主な例

4 つのネットワーク タイプ:なし: コンテナのネットワーク機能を一切設定しません。--net=no...

Spring Boot 2.4 の新機能、ワンクリックビルド、Docker イメージプロセスの詳細説明

背景開発プロセス中に Docker コンテナ化をサポートするために、通常は Maven を使用してコ...

Vueプロジェクトでよく使われる実践的なスキルのまとめ

目次序文1. マルチレベルのデータとイベントの配信には$attrsと$listenersを使用する2...

Dockerは起動されていないコンテナの設定情報を変更します

私が初めてdockerを使用したときは、dockerfileやdocker-composeを使用して...

mysql 行列変換サンプルコード

1. 需要3 つのテーブルがあります。一定期間にわたるさまざまな抗生物質感受性の結果、つまり rep...