MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合があります。トリガーの呼び出しを制御する方法はありますか?
名前が示すように、トリガーは特定の条件下でデータベースによって自動的に呼び出される SQL ステートメントです。トリガーは手動呼び出しプロセスを拒否し、MYSQL データベースによって自動的に呼び出されるため、実行がより効率的になります。

トリガーを無効にするにはどうすればいいですか?

1. 2 つの新しいテーブルを作成します。

テーブルdemo_1:

テーブル「demo_1」を作成します(
 `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主キー',
 `STUNAME` varchar(32) デフォルト NULL コメント '名前',
 `AGE` tinyint(4) デフォルト NULL コメント '年齢',
 主キー (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=14 デフォルト CHARSET=utf8;

テーブル: demo_2

テーブル「demo_2」を作成します(
 `ID` int(11) NOT NULL AUTO_INCREMENT COMMENT '主キー',
 `STU_ID` int(11) デフォルト NULL コメント '学生ID',
 `MATH` double デフォルト NULL コメント 'score',
 主キー (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=11 デフォルト CHARSET=utf8;

2. 次にdemo_1のトリガーを作成します。

`insertTragger` が存在する場合はトリガーを削除します。
区切り文字 ;;
各行の「demo_1」にINSERTした後でトリガー「insertTragger」を作成します。
demo_1 から ID INTO @v1 を選択し、ID で並べ替え、desc limit 1 を指定します。
demo_2(STU_ID, MATH)に値(@v1, 98.5)を挿入します。
終わり
;;
区切り文字 ;

3. トリガーは、demo_1 にデータが追加されると、demo_2 にもデータが自動的に追加されるというものです。

4. しかし、データが入力または出力されるたびにトリガーをトリガーしたくはありません。トリガーしたいときにのみトリガーされるようにしたいのです。

トリガーを書き換えます:

`insertTragger` が存在する場合はトリガーを削除します。
区切り文字 ;;
各行の「demo_1」にINSERTした後でトリガー「insertTragger」を作成します。
@enable_trigger = 1 の場合
demo_1 から ID INTO @v1 を選択し、ID で並べ替え、desc limit 1 を指定します。
demo_2(STU_ID, MATH)に値(@v1, 98.5)を挿入します。
終了の場合;
終わり
;;
区切り文字 ;

5. コールトリガー

@enable_trigger を 1 に設定します。
demo_1(STUNAME、AGE)にVALUES('Xiao Qiang'、17)を挿入します。
実行後、データエントリ2 Xiaoqiang17がテーブルdemo_1に追加されます。
表demo_2にはデータ2 2 98.5も追加されます

6. トリガーを無効にする

@enable_trigger を 0 に設定します。
demo_1(STUNAME、AGE)にVALUES('Xiao Qiang'、17)を挿入します。
実行後:
実行後、データエントリ2 Xiaoqiang17がテーブルdemo_1に追加されます。

テーブルdemo_2にデータが追加されていません

上記により、トリガーの柔軟な呼び出しの問題が解決されます。

要約する

上記は、私がご紹介した MySQL でのトリガーの無効化と起動に関するチュートリアルです。お役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL トリガー構文とアプリケーション例
  • MySql ビュー トリガー ストアド プロシージャの詳細な説明
  • MySQL トリガーの原理と使用例の分析
  • MySQL ログトリガー実装コード
  • MySQL トリガーの追加、削除、変更、クエリ操作の例
  • MySQL トリガー: 複数のトリガー操作の作成例の分析
  • MySQL トリガー: トリガーの作成と使用
  • MySQL トリガーの紹介、トリガーの作成、使用制限の分析
  • MySQL トリガーの定義と使用方法の簡単な例
  • MySQLトリガーの概念、原理、使用法の詳細な説明
  • MySQLデータベーストリガーの詳細な説明

<<:  関数の分類の詳細な説明とJavascriptでのこのポイントの例

>>:  Linux ディスクのシーケンシャル書き込みとランダム書き込みの方法

推薦する

Linux ディスクのマウント、パーティション分割、容量拡張操作を実装する方法

基本概念操作の前に、まずいくつかの基本的な概念を理解する必要がありますディスクLinux システムで...

JSが絵柄デジタル時計を実現

この記事の例では、画像デジタル時計を実現するためのJSの具体的なコードを参考までに共有しています。具...

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

PostgreSQL正規表現の一般的な機能の概要

PostgreSQL正規表現の一般的な機能の概要正規表現は、複雑なデータ処理を必要とするプログラムに...

Dockerの匿名マウントと名前付きマウントの具体的な使用法

目次データ量匿名マウントと名前付きマウントデータボリュームの場所データ量匿名マウントと名前付きマウン...

WeChatアプレットでのwxsファイルの素晴らしい使い方をいくつか紹介します

目次序文応用フィルタードラッグファイル間での参照の受け渡しwxsはjsロジック層にパラメータを渡しま...

複数サーバーの負荷分散を実現するためのNginx構成

Nginx ロード バランシング サーバー: IP: 192.168.0.4 (Nginx-Serv...

Linux での MySQL 5.7.19 のインストールに関する問題の概要

初めて仮想マシンに MySQL をインストールしたとき、多くの問題が発生しました。ここでそれらを書き...

Docker コンテナを他のサーバーに移行する 5 つの方法

多くの場合、移行は避けられません。ハードウェアのアップグレード、データ センターの変更、古いオペレー...

優れた UI (ユーザー インターフェース) デザイナーになるための 20 の道標

はじめに: インターフェイス デザイナーの Joshua Porter が自身のブログでこの記事を公...

入力ボックスのオートコンプリート機能をオフにする

これで、autocomplete と呼ばれる input の属性を使用できるようになりました。オート...

MySQL 起動エラーを解決する: エラー 2003 (HY000): 'localhost' の MySQL サーバーに接続できません (10061)

このエラーは初心者によく発生します。この記事では主に、エラー 2003 (HY000): '...

CSS における @ の使用法の概要 (例と説明付き)

@ ルールは、CSS の実行または動作に関する指示を提供する宣言です。各宣言は @ で始まり、その...

MySQLにおけるSQLの実行順序についてのちょっとした質問

今日、仕事中に左結合に関するSQLの問題に遭遇しました。後で解決しましたが、この問題を通じてSQLの...

Windows と Linux 間のリモート デスクトップ接続

Linux へのリモート デスクトップ接続といえば、まず VNC の使用を思い浮かべるかもしれません...