mysqlのトリガーとは何ですか
MySQL では、トリガーはデータベース ディレクトリに保存されている一連の SQL ステートメントであり、挿入、更新、削除など、テーブルに関連付けられたイベントが発生するたびに実行または起動されます。トリガーはデータ テーブルと密接に関連しており、主にテーブル内のデータを保護するために使用されます。特に、特定の相互接続を持つ複数のテーブルがある場合、トリガーは異なるテーブル間でデータの一貫性を維持できます。 MySQL では、トリガーは INSERT、UPDATE、および DELETE 操作の実行時にのみアクティブ化され、他の SQL ステートメントではトリガーはアクティブ化されません。
このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。
mysql のトリガー
mysql では、トリガーはデータベース ディレクトリに保存されている一連の SQL ステートメントです。挿入、更新、削除など、テーブルに関連付けられたイベントが発生したときに発生します。
MySQL トリガーは、ストアド プロシージャと同様、MySQL に埋め込まれたプログラムであり、MySQL でのデータ管理のための強力なツールです。違いは、ストアド プロシージャの実行には CALL ステートメントが必要であるのに対し、トリガーの実行には CALL ステートメントや手動起動は必要なく、データ テーブルに対する関連操作を通じてトリガーおよびアクティブ化され、実行が行われることです。たとえば、学生テーブルに対して操作 (INSERT、DELETE、または UPDATE) が実行されると、その実行がアクティブ化されます。
トリガーはデータ テーブルと密接に関連しており、主にテーブル内のデータを保護するために使用されます。特に相互に関連する複数のテーブルがある場合、トリガーは異なるテーブル間でデータの一貫性を維持できます。
MySQL では、INSERT、UPDATE、および DELETE 操作を実行するときにのみトリガーをアクティブにすることができます。他の SQL ステートメントではトリガーはアクティブになりません。
それでは、なぜトリガーを使用するのでしょうか?たとえば、実際にプロジェクトを開発していると、次のような状況に遭遇することがよくあります。
学生に関するレコードを学生テーブルに追加するとき、同時に学生の総数も変更する必要があります。
学生レコードを追加するときは、年齢が範囲要件を満たしているかどうかを確認する必要があります。
学生の情報を削除する場合は、スコアシート上の該当する記録を削除する必要があります。
データを削除する場合は、データベース アーカイブ テーブルにバックアップ コピーを保存する必要があります。
上記の状況で実装されるビジネス ロジックは異なりますが、いずれもデータ テーブルが変更されたときに何らかの処理を自動的に実行する必要があります。このとき、トリガー処理を利用することができます。たとえば、最初のケースでは、トリガー オブジェクトを作成し、学生レコードが追加されるたびに学生の総数を計算する操作を実行できます。これにより、学生レコードが追加されるたびに、学生の総数と学生の総数が確実に計算されます。生徒の記録の数が計算され、一貫しています。
MySQL がサポートするトリガー
実際の使用では、MySQL は INSERT トリガー、UPDATE トリガー、DELETE トリガーの 3 つのトリガーをサポートします。
1) INSERT トリガー
INSERT ステートメントの実行前または後に応答するトリガー。
INSERT トリガーを使用するときは、次の点に注意する必要があります。
INSERT トリガー コードでは、NEW という名前の仮想テーブルを参照できます (大文字と小文字は区別されません)。 ) 挿入された行にアクセスします。
BEFORE INSERT トリガーでは、NEW の値も更新できます。これにより、挿入された値を変更できます (対応する操作権限がある限り)。
AUTO_INCREMENT 列の場合、NEW には INSERT が実行される前は値 0 が含まれており、INSERT が実行された後は自動的に生成された新しい値が含まれます。
2) UPDATE トリガー
UPDATE ステートメントの実行前または後に応答するトリガー。
UPDATE トリガーを使用するときは、次の点に注意する必要があります。
UPDATE トリガー コードでは、NEW という名前の仮想テーブルを参照できます (大文字と小文字は区別されません)。 ) 更新された値にアクセスします。
UPDATE トリガー コード内では、OLD という名前の仮想テーブル (大文字と小文字は区別されません) を参照して、UPDATE ステートメントが実行される前の値にアクセスできます。
BEFORE UPDATE トリガーでは、NEW の値も更新される可能性があり、これにより、UPDATE ステートメントで使用される値を変更できます (対応する操作権限がある場合に限ります)。 。
OLD の値はすべて読み取り専用であり、更新できません。
注: テーブル自体の更新操作をトリガーするようにトリガーが設計されている場合、使用できるのは BEFORE タイプのトリガーのみであり、AFTER タイプのトリガーは許可されません。
3) DELETE トリガー
DELETE ステートメントの実行前または後に応答するトリガー。
DELETE トリガーを使用するときは、次の点に注意する必要があります。
DELETE トリガー コードでは、OLD という名前の仮想テーブルを参照できます (大文字と小文字は区別されません)。 ) 削除された行にアクセスします。
OLD の値はすべて読み取り専用であり、更新できません。
一般に、トリガーの使用中に、MySQL は次の方法でエラーを処理します。
トランザクション テーブルの場合、トリガー プログラムが失敗し、その結果のステートメント全体が失敗した場合、ステートメントによって実行されたすべての変更がロールバックされます。非トランザクション テーブルの場合、ステートメントが失敗した場合でも、そのようなロールバックは実行できません。障害が発生する前に行われた変更は引き続き有効です。
BEFORE トリガーが失敗した場合、MySQL は対応する行に対して操作を実行しません。
BEFORE または AFTER トリガー プログラムの実行中にエラーが発生した場合、トリガー プログラムを呼び出すステートメント全体が失敗します。
MySQL は、BEFORE トリガーと行操作の両方が正常に実行された場合にのみ AFTER トリガーを実行します。
[関連する推奨事項: mysql ビデオ チュートリアル ]
以上がmysqlのトリガーとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQLをエレガントにインストールするための鍵は、公式のMySQLリポジトリを追加することです。特定の手順は次のとおりです。MYSQLの公式GPGキーをダウンロードして、フィッシング攻撃を防ぎます。 mysqlリポジトリファイルを追加:rpm -uvh https://dev.mysql.com/get/mysql80-community-rease-el7-3.noarch.rpm update yumリポジトリキャッシュ:yumアップデートインストールmysql:yumインストールmysql-server startup mysql sportin
