ホームページ > データベース > mysql チュートリアル > mysql トリガーの概要とトリガーの作成および削除方法

mysql トリガーの概要とトリガーの作成および削除方法

巴扎黑
リリース: 2017-05-19 15:27:44
オリジナル
3159 人が閲覧しました

mysql トリガーとは何ですか?

MySQL 5 が必要です トリガーのサポートは MySQL 5 で追加されました。したがって、この章の内容は MySQL 5 以降のバージョンに適用されます。

MySQL ステートメントは、ストアド プロシージャと同様に、必要に応じて実行されます。しかし、イベントの発生時に特定のステートメント (またはいくつかのステートメント) を自動的に実行したい場合はどうすればよいでしょうか?例:

1. 顧客がデータベース テーブルに追加されるたびに、電話番号の形式が正しいかどうか、および州の略語が大文字であるかどうかを確認します。

2. 製品が注文されるたびに、在庫数量がチェックされます。注文した数量;

3. 行が削除されるたびに、コピーをアーカイブ テーブルに保存します。

これらすべての例に共通しているのは、特定のテーブルが変更されたときに自動的に処理する必要があるということです。これが文字通りのきっかけです。トリガーは、

1.DELETE;

3.UPDATE; のいずれかのステートメントに応じて MySQL が自動的に実行する MySQL ステートメント (または BEGIN ステートメントと END ステートメントの間のステートメントのグループ) です。

他の MySQL ステートメントはトリガーをサポートしていません。


mysql トリガーを作成する

トリガーを作成するときは、次の 4 つの情報を指定する必要があります。

1. トリガーに関連付けられたテーブル。

3. トリガーが応答するアクティビティ (DELETE、INSERT、または UPDATE)。

4. トリガーが実行されるとき (処理前または後)。

データベースごとにトリガー名を一意にする MySQL 5 では、トリガー名はテーブルごとに一意である必要がありますが、データベースごとに一意である必要はありません。これは、同じデータベース内の 2 つのテーブルに同じ名前のトリガーを含めることができることを意味します。これは、各データベース トリガー名が一意である必要がある他の DBMS では許可されず、MySQL の将来のバージョンでは命名規則がより厳格になる可能性があります。したがって、現在はデータベース スコープ内で一意のトリガー名を使用することが最善です。

トリガーは CREATE TRIGGER ステートメントで作成されます。簡単な例を次に示します。

入力:

create trigger newproduct after insert on proucts for each row select 'product added';
ログイン後にコピー

分析: CREATE TRIGGER は、newproduct という名前の新しいトリガーを作成するために使用されます。トリガーは操作が発生する前または後に実行できます。ここでは AFTER INSERT が指定されているため、このトリガーは INSERT ステートメントが正常に実行された後に実行されます。このトリガーでは FOR EACH ROW も指定されているため、挿入された行ごとにコードが実行されます。この例では、「製品が追加されました」というテキストが、挿入された行ごとに 1 回表示されます。このトリガーをテストするには、INSERT ステートメントを使用して製品に 1 つ以上の行を追加します

。挿入が成功するたびに、「製品が追加されました」というメッセージが表示されます。

テーブルのみをサポートします。テーブルのみがトリガーをサポートし、ビューはサポートしません (一時テーブルもサポートしません)。

トリガーはテーブルごとのイベントごとに定義され、テーブルごとのイベントごとに一度に 1 つのトリガーのみが許可されます。したがって、各テーブルは最大 6 つのトリガー (各 INSERT 、 UPDATE 、および DELETE の前後) をサポートします。 1 つのトリガーを複数のイベントまたは複数のテーブルに関連付けることはできないため、INSERT および UPDATE 操作で実行するトリガーが必要な場合は、

2 つのトリガーを定義する必要があります。

トリガーの失敗 BEFORE トリガーが失敗した場合、MySQL は要求された操作を実行しません。さらに、BEFORE トリガーまたはステートメント自体が失敗した場合、MySQL は AFTER トリガー (存在する場合) を実行しません。

mysql トリガーを削除する

これで、トリガーを削除するための構文は明らかになるはずです。トリガーを削除するには、以下に示すように DROP TRIGGER ステートメントを使用します。

入力:

drop trigger newproduct ;
ログイン後にコピー
分析: トリガーは更新または上書きできません。トリガーを変更するには、トリガーを削除してから再作成する必要があります。

【関連する推奨事項】

1.

mysql の無料ビデオチュートリアル

2.

MySQL 文字セットと照合順序の使い方

3.

MySQL 文字セットと照合順序の概要

4.トランザクション - リテンションポイントの使用とデフォルトのコミット動作の変更の詳細な説明

5. MySQL トランザクション - ROLLBACK、COMMIT の使用法の詳細な説明

以上がmysql トリガーの概要とトリガーの作成および削除方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート