2012-07-17 58 views
10

mysql我可以創建一個觸發器,然後顯示有關它的信息是這樣的:您可以在創建後修改現有的mysql觸發器嗎?

mysql> show triggers like 'fooTrigger'; 

此命令使輸出看起來極像是一個SELECT語句,與顯示匹配觸發一排。是否有可能更新它向我顯示的行上的一列?

例如,一列名爲Statement,它定義觸發器激活時發生的情況。是否有可能爲fooTrigger更改Statement字段,以便觸發器有所不同?或者我需要dropcreate的觸發器?

+1

可能的重複http://stackoverflow.com/questions/717711/is-it-true-i-cant-edit-a-mysql-trigger-i-have-to-drop-it-and-create- a-new-one – qbantek 2012-07-17 16:23:11

+0

我想這些問題中的一個可能會被關閉,但我*在嘗試提問之前嘗試搜索這個答案,而我沒有找到上面提到的問題。將其他問題的一些措辭加以修改或增加以使其更易於找到是否是一個好主意? – 2012-07-17 16:28:48

+0

嗯,http://meta.stackexchange.com/questions/32311/do-not-delete-duplicates,看起來像我們應該只是關閉這個,然後用戶仍然能夠找到他們的問題的答案,無論措辭。 – 2012-07-17 17:02:54

回答

16

從MySQL 5.5開始,您必須刪除並重新創建觸發器。
無法刪除觸發器,無法更新Statement列。

文檔:CREATE TRIGGERDROP TRIGGER

您也可以訪問有關使用INFORMATION_SCHEMA表上的觸發器:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS 

但是,因爲這些表實際上是視圖,你不能對他們使用UPDATE
這只是一種比使用SHOW TRIGGERS更方便的方式來訪問和操作信息。

文檔:INFORMATION_SCHEMA.TRIGGERS

0

您可能需要,在Windows操作系統上,Connector/Net Visual Studio Integration查看和編輯現有的數據庫對象。限制是你只能在For each row ...循環內edit trigger機構。

否則只有選項之一是下降並重新創建觸發器。
但是在放棄與觸發器關聯的表被鎖定並且在重新創建觸發器之後解鎖並且解鎖之前,確保在放棄觸發器之前。

相關問題