MySQL は、柔軟性、拡張性、セキュリティの利点を備えた強力なリレーショナル データベース管理システムであり、さまざまなアプリケーションで広く使用されています。 MySQL では、トリガーはイベントに応じてデータベース テーブルに対するアクションを定義する特別なストアド プロシージャです。ただし、場合によっては、MySQL トリガーが不要になったり、問題が発生したりするために、削除する必要がある場合があります。この記事では、MySQL でトリガーを削除する方法を紹介します。
MySQL トリガーを削除する前に、まず MySQL トリガーが存在するかどうかを確認して、削除するトリガーの名前と場所を決定する必要があります。データベース。次の構文を使用して、データベース内のすべてのトリガーをリストできます:
SHOW TRIGGERS [FROM db_name] [LIKE 'pattern'];
ここで、[FROM db_name] はオプションであり、クエリ対象のデータベースの名前。データベース名が指定されていない場合は、デフォルトで現在のデータベースが使用されます。 [LIKE 'pattern'] もオプションです。クエリされるトリガー名のパターンを示します。パターンが指定されていない場合は、すべてのトリガーがリストされます。
たとえば、次のコマンドを使用して、「user_log」という名前のトリガーが「mydb」データベースに存在するかどうかを確認できます。
SHOW TRIGGERS FROM mydb LIKE 'user\_log';
トリガーが存在する場合、トリガーとなるイベント、トリガーとなるイベントの時間とアクションなど、トリガーに関する詳細情報を含む行が出力されます。
削除する MySQL トリガーの名前とそれが配置されているデータベースが決定したら、次の構文を使用して、 MySQL トリガー:
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name;
このうち、[IF EXISTS] はオプションです。つまり、削除操作は、存在する場合にのみ実行されます。削除されるトリガー。 [schema_name.]trigger_name は、削除するトリガーの名前と、それが存在するデータベースの名前を表します (指定しない場合は、現在のデータベースが使用されます)。たとえば、次のコマンドを使用して、「mydb」データベース内の「user_log」という名前のトリガーを削除できます。
DROP TRIGGER IF EXISTS mydb.user_log;
トリガーが存在する場合、それはそれを削除し、削除が成功したことを確認するメッセージを出力します。
MySQL では、システム トリガーや他のオブジェクトによって参照されているトリガーは削除できないことに注意してください。これらのトリガーを削除しようとすると、エラー メッセージが表示されます。
次のトリガーを削除するとします。
CREATE TRIGGER user_log
AFTER INSERT ON user_table
For EACH ROW
INSERT INTO log_table VALUES (user(), NOW(), 'insert');
トリガー名は「user_log」で、「user_table」テーブルの挿入イベントに応答し、 current user 、現在の時刻、操作タイプが「log_table」テーブルに挿入されます。ここで、このトリガーを削除したいと思います。まず、このトリガーが存在するかどうかを確認する必要があります。次のコマンドを使用できます:
SHOW TRIGGERS FROM mydb LIKE 'user\_log';
トリガーが存在する場合は、次のようなものが表示されます。メッセージ:
Event | Table | Statement | ## が出力されます。 #Timing | Created | sql_mode | Definer | character_set_client | collation_connection | データベース照合順序 | |
---|---|---|---|---|---|---|---|---|---|---|
INSERT | user_table | ##2022 年以降-08-10 |
root@% | utf8 | utf8_general_ciutf8_general_ci | これで、次のコマンドを使用してこのトリガーを削除できます: |
以上がMySQL でトリガーを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。