2012-09-11 52 views
2

我有一個關於DROP TRIGGER如何工作的問題。DROP TRIGGER如何在mysql中工作?

我用這個命令刪除觸發器:

DROP TRIGGER IF EXISTS `database`.`mytrigger`; 

但我qquestion是,U可以刪除了觸發器與表名選擇呢?例如:

DROP TRIGGER IF EXISTS `table`.`mytrigger`; 

我試過了,但是當我設置tablename時觸發器沒有被刪除。

謝謝!

回答

8

不,因爲那不能唯一地標識一個觸發器,並且最終看起來好像你試圖說你有一個叫做table的數據庫。如果您只是想放棄數據庫名稱,則不需要用任何東西替換它:

DROP TRIGGER IF EXISTS `mytrigger`; 
+0

那麼,如果我在每個表上自動創建一個觸發器來保存一行的更新日期(例如updated_date_trigger),我還應該添加表(mytable_updated_date_trigger)的名字? –

+0

是的。 SQL將大多數對象名稱(包括觸發器和鍵)包括到數據庫中,因此一個合理的命名方案應該包括它們所屬表的名稱。 (只有我能想到的就是列。) – duskwuff

+0

感謝您的幫助!由你決定 –

5

觸發器在表級別不存在。它們是僅與表關聯的數據庫級對象。沒有辦法通過相關表格刪除它們。

+0

那麼,如果Im自動在每個表上創建一個觸發器來保存一行的更新日期(例如updated_date_trigger),我還應該添加表的名字(mytable_updated_date_trigger)? –

+0

我當然似乎是一個合理的命名方案,以在觸發器的名稱中包含相關的表名。 –

+0

好的,謝謝你的幫助!由你決定 –