この記事では、例を使用して MySQL トリガーの基本的な使用方法を説明します。ご参考までに、詳細は以下の通りです。 1. MySQLトリガーの作成: 1. MySQLトリガー作成構文:CREATE [定義者 = { 'user' | CURRENT_USER }] トリガー トリガー名 トリガー時間 トリガーイベント ON テーブル名 各行ごとに [トリガー順序] トリガー本体 2. MySQL作成構文のキーワードの説明:
3. トリガー実行ステートメントの内容 (trigger_body) の OLD、NEW: trigger_body では、挿入する新しい行を示すために NEW を使用し (MS SQL の
4. MySQL 区切り文字 (DELIMITER): MySQL はデフォルトで「;」を区切り文字として使用し、「;」に遭遇すると SQL ステートメントが送信されます。トリガーには複数の「;」文字が含まれている可能性があります。トリガー作成ステートメントが途中で送信されないようにするには、MySQL 区切り文字を一時的に変更し、作成後に区切り文字を元に戻す必要があります。次のように区切り文字を変更するには、 区切り文字 $ ... --トリガー作成ステートメント; $ --作成ステートメントを送信します。 区切り文字 ; 2. 高度なMySQLトリガーの作成: 1. MySQL トリガーで変数を使用する: MySQL トリガーでは、変数の前に '@' が付き、定義なしで直接使用できます。 --変数の直接割り当て set @num=999; -- 選択ステートメントのデータを使用して値を割り当てます。括弧が必要です。 @name を設定します (テーブルから名前を選択します)。 2. MySQL トリガーで if ステートメントを使用して条件判断を行います。-- 単純な if 文: 性別を、if (new.sex=1, '男性', '女性') に設定します。 --複数の条件付き if ステートメント: old.type=1の場合 テーブルを更新します...; そうでない場合は、old.type=2 の場合 テーブルを更新します...; 終了の場合; 3. MySQL ビュートリガー: 「 -- information_schema.triggers テーブルを通じてトリガーを表示します。 information_schema.triggers から * を選択します。 --mysql は現在のデータベースを表示するためのトリガーを表示します。 -- mysql は指定されたデータベース「aiezu」の aiezu からのトリガーを表示します。 4. MySQL削除トリガー: 1. トリガーを削除するには、ドロップ トリガーを使用します。トリガーtrigger_nameを削除します。 2. 削除する前にトリガーが存在するかどうかを確認します。トリガーが存在する場合は削除する trigger_name 5. Msqlトリガーの使用例: 1. MySQL トリガー Insert は同じテーブルの更新をトリガーします。以下にテーブル「 テスト テーブルとトリガーを作成します。 -- テスト テーブルを作成します (存在する場合はテーブルを削除します tmp1)。 テーブル tmp1 (n1 int、n2 int) を作成します。 -- トリガー DELIMITER $ を作成 存在する場合はトリガーを削除する tmp1_insert$ トリガー tmp1_insert を作成する tmp1 に挿入する前 各行ごとに 始める new.n2 = new.n1*5 と設定します。 終了$ 区切り文字 ; テストトリガー更新効果: mysql> tmp1(n1) の値(18) を挿入します。 クエリは正常、1 行が影響を受けました (0.01 秒) mysql> tmp1(n1) の値(99) を挿入します。 クエリは正常、1 行が影響を受けました (0.00 秒) mysql> tmp1 から * を選択します。 +------+------+ | n1 | n2 | +------+------+ | 18 | 90 | | 99 | 495 | +------+------+ セット内の 2 行 (0.00 秒) 2. MySQL トリガー更新トリガーは別のテーブルを更新します。以下に、同じフィールド テスト テーブルとトリガーを作成します。 -- テスト テーブルを作成し、テスト データを挿入します (存在する場合はテーブルを削除します tmp1)。 tmp2 が存在する場合はテーブルを削除します。 テーブル tmp1 (id int、name varchar(128)) を作成します。デフォルトの文字セットは 'utf8' です。 テーブル tmp2 (fid int、name varchar(128)) を作成します。デフォルトの文字セットは 'utf8' です。 tmp1 に値(1, '爱E族')を挿入します。 tmp2 に値(1, '爱E族')を挿入します。 -- トリガー DELIMITER $ を作成 tmp1_update$ が存在する場合はトリガーを削除します トリガー tmp1_update を作成する tmp1 の更新後 各行ごとに 始める tmp2 を更新し、name=new.name、fid=new.id を設定します。 終了$ 区切り文字 ; テストトリガー更新効果: mysql> tmp1 から * を選択します。 +------+---------+ | ID | 名前 | +------+---------+ | 1 | ラブE族 | +------+---------+ セット内の 1 行 (0.00 秒) mysql> tmp2 から * を選択します。 +------+---------+ | fid | 名前 | +------+---------+ | 1 | ラブE族 | +------+---------+ セット内の 1 行 (0.00 秒) mysql> tmp1 を更新し、name='aiezu.com' を設定し、id=1 にします。 クエリは正常、1 行が影響を受けました (0.00 秒) 一致した行: 1 変更された行: 1 警告: 0 mysql> tmp1 から * を選択します。 +------+------------+ | ID | 名前 | +------+------------+ | 1 | aiezu.com | +------+------------+ セット内の 1 行 (0.00 秒) mysql> tmp2 から * を選択します。 +------+------------+ | fid | 名前 | +------+------------+ | 1 | aiezu.com | +------+------------+ セット内の 1 行 (0.00 秒) MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL クエリ スキル」、「MySQL トランザクション操作スキル」、「MySQL ストアド プロシージャ スキル」、「MySQL データベース ロック関連スキルの概要」、および「MySQL 共通関数の概要」 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: Nexusプライベートサーバー構築原理とチュートリアル分析
>>: Centos7はMySQLログに基づいてデータを復元するためのサンプルコードを実装します
目次1. 場所オブジェクト1. URL 2. 場所オブジェクトのプロパティ3. ロケーションオブジェ...
フロントエンドcss3 フィルターは、Web ページのグレー効果を実現できるだけでなく、ナイト モー...
この記事は共有および集約することを歓迎します。全文を転載する必要はありません。著作権を尊重してくださ...
問題の説明: docker run -p 19918:19918/tcp -v /etc/local...
これはウェブサイトのユーザビリティに関する記事です。著者は自身の経験に基づいて、ウェブサイトのデザイ...
レイアウトにul>liを使用した単一行レイアウトを以下に示します。 <ul class=...
序文:金額の保存など、小数点数を保存し、精度要件がある場合、通常は DECIMAL フィールド タイ...
最近仕事でnginxの設定を変更する必要が頻繁にあり、nginxでrewriteを使用する方法を学び...
順序付きリストXML/HTML コードコンテンツをクリップボードにコピー<オルタイプ= &qu...
MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...
この記事の例では、ファイルアップロード機能を実現するためのjquery+springbootの具体的...
MySQL が数千万のデータをクエリする場合、ほとんどのクエリ最適化の問題はインデックスを通じて解決...
<br />これは 123WORDPRESS.COM が提供する一連のチュートリアルです...
具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...
目次1. ACIDの特性トランザクション制御構文3. トランザクション同時実行例外1. ダーティリー...