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

推薦する

Linux lsof コマンドの使用方法の詳細な説明

lsof (開いているファイルのリスト) は、プロセスによって開かれたファイルを表示するツールです。...

面接では、select...for update がテーブルをロックするのか、それとも行をロックするのか尋ねられました。

目次確認する:例の検証と組み合わせるselect クエリ ステートメントはロックされませんが、sel...

Ubuntu MySQL バージョンが 5.7 にアップグレードされました

数日前、図書館はサーバー(Ubuntu 14.04)にセキュリティ上の脆弱性があり、時間通りに修復さ...

Linux システムのシャットダウンコマンドの違いと使い方の詳細な説明

Linux システムのシャットダウン コマンドは何ですか? Liangxu Tutorial Net...

テキストエリアの残りの単語数を動的に取得する方法

仕事で、これまで一度も書いたことのないケースに遭遇しました。午後の半分をその作業に費やし、ついに書き...

マウス追従ゲームを実現するjs

この記事では、マウス追従ゲームを実装するためのjsの具体的なコードを参考までに共有します。具体的な内...

Vueコンポーネントドキュメントを自動生成する方法を分析する

目次1. 現状2. コミュニティソリューション2.1 事業レビュー3. 技術的ソリューション3.1....

DockerコンテナがSongtiなどのフォントを認識しない場合の解決策

問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...

Vue の this.$router と this.$route の違いと push() メソッド

公式文書には次のように記されている。ルーターを挿入することで、どのコンポーネントでも this.$r...

Linux Dig コマンドの使用法

発掘紹介: Dig は、Unix ライクなコマンドライン モードで NS レコード、A レコード、M...

$remote_addr に基づく nginx フロントエンド配布方法の詳細な説明

要件は次のとおりです。ドメイン名の下に複数のサーバーがあります。現在、特定の地域をテストしています。...

MySQL における count(*)、count(1)、count(col) の違いのまとめ

序文count 関数は、テーブルまたは配列内のレコードをカウントするために使用されます。count(...

HTML+SassはHambergurMenu(ハンバーガーメニュー)を実装します

先日、外国人の方がHTML+CSSを使ってHamburgerMenuを実装している動画を見ました。最...

CSS リスト モデルでのマーカー タグの使用

この記事では主に、 list-itemの下にある::master疑似要素、 list-style-i...

Vue カプセル化 TabBar コンポーネントの完全なステップ記録

目次実装のアイデア:ステップ 1: TabBar と TabBarItem のコンポーネント カプセ...