2014-04-18 15 views
8

Wenn ich ein Ereignis löschen möchte, muss ich etwas abfragen wie "DROP EVENT IF EXISTS eventname" Aber ich kann nicht den Befehl finden, alle Ereignisse auf einmal zu löschen, müssen Ereignis einzeln löschen. Gibt es SQL, alle Ereignisse gleichzeitig zu löschen?Wie lösche ich alle Ereignisse in MySQL

"DROP EVENT IF EXISTS (SELECT EVENT_NAME FROM information_schema.EVENTS)" 

funktioniert auch nicht.

Antwort

12

Probe ein:

DELETE FROM mysql.event 
    WHERE db = 'myschema' 
     AND definer = '[email protected]' 
     AND name = 'e_insert'; 

https://dev.mysql.com/doc/refman/5.1/en/events-privileges.html

wenn Sie das Ereignis mit DROP EVENT IF EXISTS löschen und erneut hinzufügen, es mit der neuen geplanten Zeit.

Um ein Ereignis selbst dauerhaft zu löschen, können Sie DROP EVENT verwenden:

DROP EVENT [IF EXISTS] event_name 

https://dev.mysql.com/doc/refman/5.1/en/drop-event.html

+0

Beispiel eins funktioniert gut, danke! – Yellove

2

Ich denke, Sie müssen die Tabelle INFORMATION_SCHEMA.EVENTS verwenden, um alle aktiven Ereignisse zu sammeln und dann die DROP EVENT-Anweisungen zu erstellen und auszuführen.

+0

Bitte sagen Sie mir, wie Sie die Anweisungen kombinieren "DROP EVENT .." mit "SELECT' EVENT_NAME 'FROM' information_schema kombinieren '.'EVENTS'" – Yellove

1

eine Drop-Ereignisse Abfrage zu erstellen, können Sie etwas tun:

select concat('drop event if exists ', event_name, ';') from information_schema.events; 
Verwandte Themen