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

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

May 19, 2017 pm 03:27 PM
mysql作成する消去引き金

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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLは、他のRDBMSと比較してどのように同時性を処理しますか?MySQLは、他のRDBMSと比較してどのように同時性を処理しますか?Apr 29, 2025 am 12:44 AM

mysqlhandlesconcurrencyusing amixofrow-levelandtable-levellocking、主にthroughnodb'srow-levellocking.comparedtootherrdbms、mysqlのsapproachiseformanyusecasesecasesbutmayfaceChallengeswithdeadlockdlacklikeRisikErisikErikErikErikErikErikErikErikErikErikErikErikErikErikErikeを使用してください

MySQLは、他のリレーショナルデータベースと比較してトランザクションをどのように処理しますか?MySQLは、他のリレーショナルデータベースと比較してトランザクションをどのように処理しますか?Apr 29, 2025 am 12:37 AM

mysqlhandlestransactionsefectivectivelivationtivelivational supportingingacidpropertiessimilArtopostgreslesclandoracle.1)mysqluseSesrepeatable-readededededededededededefaultisolation level

MySQLで利用可能なデータ型は何ですか?MySQLで利用可能なデータ型は何ですか?Apr 29, 2025 am 12:28 AM

MySQLデータ型は、数値、日付と時刻、文字列、バイナリ、空間型に分割されます。正しいタイプを選択すると、データベースのパフォーマンスとデータストレージを最適化できます。

MySQLで効率的なSQLクエリを作成するためのベストプラクティスは何ですか?MySQLで効率的なSQLクエリを作成するためのベストプラクティスは何ですか?Apr 29, 2025 am 12:24 AM

ベストプラクティスには以下が含まれます。1)データ構造とMySQL処理方法の理解、2)適切なインデックス作成、3)SELECT*、4)適切な結合タイプの使用、5)サブQueriesを使用して、5)慎重に使用します。これらのプラクティスは、MySQLクエリを高速であるだけでなく、保守性、スケーラビリティ、リソース効率もすることができます。

MySQLはPostgreSQLとどのように違いますか?MySQLはPostgreSQLとどのように違いますか?Apr 29, 2025 am 12:23 AM

mysqlisbetterforspeedandsimplicity、適切なforwebapplications; postgresqlexcelsincomplexdatascenararios withobustfeatures.mysqlisidealforquickprojectsandread-havytasks、whilepostgressqlessqlispreredforforivationsRedictrictiontrictdateinitegriTinitegriTiontegriTioniitaintegrategrisioniationegrisioniaty

MySQLはデータレプリケーションをどのように処理しますか?MySQLはデータレプリケーションをどのように処理しますか?Apr 28, 2025 am 12:25 AM

MySQLは、非同期、半同期、およびグループ複製の3つのモードを介してデータの複製を処理します。 1)非同期の複製パフォーマンスは高くなりますが、データが失われる可能性があります。 2)半同期複製により、データセキュリティが向上しますが、遅延が増加します。 3)グループレプリケーションは、高可用性要件に適したマルチマスターレプリケーションとフェールオーバーをサポートします。

説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?説明ステートメントを使用してクエリパフォーマンスを分析するにはどうすればよいですか?Apr 28, 2025 am 12:24 AM

説明ステートメントは、SQLクエリのパフォーマンスを分析および改善するために使用できます。 1.説明ステートメントを実行して、クエリプランを表示します。 2。出力結果を分析し、アクセスの種類、インデックスの使用量に注意し、順序を結合します。 3.分析結果に基づいてインデックスを作成または調整し、結合操作を最適化し、フルテーブルスキャンを回避してクエリ効率を向上させます。

MySQLデータベースをバックアップして復元するにはどうすればよいですか?MySQLデータベースをバックアップして復元するにはどうすればよいですか?Apr 28, 2025 am 12:23 AM

論理バックアップにMySQLDUMPとホットバックアップにMySQLenterPriseBackupを使用することは、MySQLデータベースをバックアップする効果的な方法です。 1. mysqldumpを使用してデータベースをバックアップします:mysqldump-uroot-pmydatabase> mydatabase_backup.sql。 2。ホットバックアップにmysqlenterprisebackupを使用:mysqlbackup - user = root-password = password - backup-dir =/path/to/backupbackup。回復するときは、対応する寿命を使用します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター