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 ディスクのシーケンシャル書き込みとランダム書き込みの方法

推薦する

Vue diffアルゴリズムの完全な分析

目次序文Vue 更新ビューパッチ同じVノードパッチVノード更新子供序文Vue は仮想 DOM を使用...

WebpackはCSSファイルを読み込み、その設定方法

webpackはCSSファイルとその設定をロードします複数の CSS ファイルを作成した後、HTML...

インタラクティブデザインでページングと読み込みのどちらを選択するかについての説明

この記事の著者@子木yoyoが個人ブログに投稿したものです。 Web ページでもモバイル アプリでも...

Ubuntu のインストール グラフィック ドライバーと Cuda チュートリアル

目次1. 元のドライバーをアンインストールする2. 新しいグラフィックカードドライバーをダウンロード...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

デザイン理論: テキストの読みやすさと可読性

<br />少し前に、ビジネス上の必要性から、ラップトップに Souba をインストール...

yum 経由で CentOS に PHP をインストールするチュートリアル

まず、yumを使ってCentOSにPHPをインストールする方法を紹介します。 1. PHPのyumソ...

MySQL バージョンは、2 つのタイムスタンプ型の値をサポートしていないバージョンよりも低いです。

MySQL エラー:エラー コード: 1293 テーブル定義が正しくありません。CURRENT_T...

Vueは小さなフォーム検証機能を実装します

この記事では、フォーム検証を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は...

nginx.conf のルートディレクトリ設定の詳細な説明

nginx.conf を構成するときには常に何らかの問題が発生します。ここでは、よくある問題とその解...

MySQL接続クエリの原理と応用

概要MySQL の最も強力な機能の 1 つは、データ取得を実行しながらテーブルを結合できることです。...

Centos7 ベースの Varnish キャッシュ プロキシ サーバーを展開する

1. ワニスの概要1. ワニスの紹介Varnish は、新しいソフトウェア アーキテクチャを使用し、...

Keepalived を使用して Nginx の自動再起動とデュアルアクティブ ホットスタンバイの高可用性を実現する方法について

目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...

MySQL データベース インデックスが B+ ツリーの使用を選択するのはなぜですか?

MySQL データベース インデックスが B+ ツリーを使用する理由をさらに分析する前に、データ構...