2012-07-17 85 views
0

在MySQL 5.0.77版本,我跑這如何刪除壞觸發

CREATE TRIGGER ins_trap_to_memory AFTER INSERT on Table1 
FOR EACH ROW 
INSERT INTO Table1_Copy SELECT NEW.*; 

它跑,但現在數據庫斷開每當我試圖做某些事情:

不能查看triggers-

mysql> SHOW TRIGGERS LIKE '%'\G 
ERROR 2006 (HY000): MySQL server has gone away 
No connection. Trying to reconnect... 
Connection id: 7 
Current database: mydb 

ERROR 2013 (HY000): Lost connection to MySQL server during query 

無法刪除問題TRIGGER-

mysql> DROP TRIGGER ins_trap_to_memory; 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 

無法查詢information_schema.TRIGGERS-

mysql> select * from information_schema.TRIGGERS; 
ERROR 2006 (HY000): MySQL server has gone away 
No connection. Trying to reconnect... 
Connection id: 12 
Current database: information_schema 

ERROR 2013 (HY000): Lost connection to MySQL server during query 

回答

2

做其他類型的查詢工作的?

除非Table1的插入量持續增加,否則兩者是相關的,這似乎不太可能,並且這是服務器過載的結果。這可能只是一個間歇性的連接問題。

無論哪種方式,你應該能夠砸:

DROP TRIGGER ins_trap_to_memory ON Table1 
+0

我無法嘗試此操作,因爲我在看到此答案之前找到了修復程序。 – sans 2012-07-17 15:43:38

1

之所以能夠前往/var/lib/mysql/mydb和刪除Table1.TRG擺脫壞觸發的。

+0

該觸發器有什麼問題? – Jocelyn 2012-07-17 15:46:30

+0

以這種方式刪除觸發器是管理你的MySQL的一種可怕的方式,並且服務器消失的消息可能是比無法執行一些查詢更糟糕的事情的症狀。 – 2012-07-17 15:52:19

+0

從字面上不可能從MySQL內部刪除觸發器。 – sans 2012-07-17 15:54:55