0

学校では、SQL でトリガーを書くことを学んでいて、私も書きましたが、それは間違っています。ですので、削除させていただきたいと思います。

私は次のことを試しました:

mysql> use information_schema
Database changed
mysql> drop trigger log;
ERROR 1360 (HY000): Trigger does not exist

しかし、ご覧のとおり、存在しないためエラーが発生します。Sequel Pro を使用してそのテーブルを で確認するとselect * from triggers;、log というトリガーがあることがわかります。スクリーンショットを参照してください:

トリガーが利用可能

右クリックして「行の削除」をクリックして削除しようとしましたが、次のエラーが表示されます。

行を削除できませんでした。

MySQL によると: ユーザー 'robbert'@'localhost' のデータベース 'information_schema' へのアクセスが拒否されました

そのトリガーを削除するにはどうすればよいですか? 明らかにありますよね?

4

3 に答える 3

2

列は、TRIGGER_SCHEMAトリガーが定義されているデータベースを示します: する必要がありますUSE db5(INFORMATION_SCHEMAまたは、DROP TRIGGERステートメントでトリガー名を修飾する必要があります)。

USE db5;
DROP TRIGGER log;

または:

DROP TRIGGER db5.log;
于 2012-09-16T13:36:09.580 に答える
0

次のように使用してみてください:

構文:

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name

あなたの場合:

 DROP TRIGGER [IF EXISTS] db5.log;

間違ったスキーマ名を使用していたため、エラーが発生しました。スキーマ名db5information_schema

于 2012-09-16T13:36:31.713 に答える
0

トリガーは db5 スキーマにあります。削除する前にそのスキーマを使用する必要があります

use db5;
drop trigger log;

または、drop ステートメントで完全修飾トリガー名を使用します。

drop trigger db5.log
于 2012-09-16T13:36:53.333 に答える