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-cli 設定では Vuex の完全なプロセスレコードを使用します

目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...

CentOS 8にJenkinsをインストールする方法

CentOS 8 に Jenkins をインストールするには、root アカウントまたは sudo ...

MySQLでデータベースのインストールパスを表示する方法

mysql コマンドを使用して、mysql のインストール パスを表示できます。 # 次の 2 つの...

Apache ポートに基づいて仮想ホストを作成する例

apache: ポートに基づいて仮想ホストを作成する仮想ホスト(a、b、c)の作成を例に挙げます1)...

Reactは二次連結(左右連結)を実現する

この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...

ネイティブJSで実装されたギャラリー機能

目次最初2番目Native Js はギャラリー機能を実装します。画像をクリックすると、対応する拡大画...

CentOS で Mysql を再起動するさまざまな方法 (推奨)

1. rpm パッケージ経由でインストールされた MySQL サービスmysqldを再起動 /et...

CSSはcalc()を使用して現在の表示画面の高さを取得します

まず、CSS3 の相対的な長さの単位を見てみましょう (詳細なチュートリアルを参照してください)。相...

ReactにおけるuseRefの具体的な使い方

React の経験がある人なら、コンポーネントインスタンスオブジェクトや DOM オブジェクトを取得...

Vue フィルターの実装と適用シナリオの詳細な説明

1. 簡単な紹介Vue.js を使用すると、一般的なテキストの書式設定に使用できる独自のフィルターを...

MySQL 時間差関数 (TIMESTAMPDIFF、DATEDIFF)、日付変換計算関数 (date_add、day、date_format、str_to_date)

1. 時間差関数(TIMESTAMPDIFF、DATEDIFF) MySQLを使用して時間差を計算...

insert と select を組み合わせて、「データベース内のフィールドの最大値 + 1 を挿入する」メソッドを実装する

この記事はmysqlデータベースです質問 1 表 1 のデータを表 2 にインポートします。表 1 ...

CentOS8 yum/dnfで国内ソースを設定する方法

CentOS 8 ではソフトウェア パッケージのインストール プログラムが変更され、yum 構成方法...

Vueは買い物数量を変更できるショッピングカートを実装します

この記事では、Vueを使用してショッピングカートの数量を変更する方法を紹介します。具体的な内容は次の...

MySQL テーブルと列のコメントの概要

コードと同様に、テーブルや列にコメントを追加して、他のユーザーがその機能を理解できるようにすることが...