2012-09-16 40 views
0

在學校,我們正在學習使用SQL編寫觸發器,並且我寫了一個觸發器,但這是錯誤的。因此,我想刪除它。從information_schema刪除觸發器DB

我試過如下:

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

但正如你看到的,因爲它不存在,我得到一個錯誤。 當我使用Sequel Pro並用select * from triggers;檢查該表時,它顯示我有一個稱爲log的觸發器。見截圖:

Trigger is available

我試着右擊刪除它,然後點擊「刪除行」,但後來我得到以下錯誤:

Couldn't delete rows.

MySQL said: Access denied for user 'robbert'@'localhost' to database 'information_schema'

我怎麼移除觸發?這顯然在那裏?

回答

2

TRIGGER_SCHEMA列表示在您的觸發器定義數據庫:你需要USE db5,不INFORMATION_SCHEMA(在DROP TRIGGER陳述或者限定觸發器名):

USE db5; 
DROP TRIGGER log; 

或者:

DROP TRIGGER db5.log; 
+0

哇使用完全合格的觸發器的名字,那是愚蠢的我。當然,這有效。謝謝! – Rvervuurt

0

嘗試使用這樣的:

語法:

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name 

你的情況:

DROP TRIGGER [IF EXISTS] db5.log; 

的錯誤發生,因爲你使用的是錯誤的架構名稱。模式名稱應該是db5而不是information_schema

0

您的觸發器位於db5架構中。您需要可以使用該模式下探

use db5; 
drop trigger log; 

之前或在下拉菜單中陳述

drop trigger db5.log