2014-04-18 15 views
8

Jeśli chcę usunąć jakieś zdarzenie, muszę zapytać o coś takiego jak "DROP EVENT IF EXISTS eventname" Ale nie mogę znaleźć polecenia usunięcia wszystkich zdarzeń naraz, należy usunąć wydarzenie jeden po drugim. Czy jest jakiś kod SQL usuwający wszystkie zdarzenia naraz?Jak usunąć wszystkie zdarzenia w MySQL

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

też nie działa.

Odpowiedz

12

próbka jeden:

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

czy można usunąć zdarzenie z DROP EVENT IF EXISTS i ponownie dodać go z nowym zaplanowanym czasie.

Aby trwale usunąć zdarzenie siebie, można użyć DROP EVENT:

DROP EVENT [IF EXISTS] event_name 

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

+0

próbka jedna działa dobrze, dziękuję! – Yellove

2

Myślę, że musisz użyć tabeli INFORMATION_SCHEMA.EVENTS, aby zebrać wszystkie aktywne zdarzenia, a następnie skonstruować i uruchomić instrukcje DROP EVENT.

+0

Poinformuj mnie, jak skonstruować wyciągi, połącz "DROP WYDARZENIE .." z "WYBIERZ" EVENT_NAME' Z "informacji_schemicznej '.'EVENTS'" – Yellove

1

Aby skonstruować kwerendę zdarzeń drop, można zrobić coś takiego:

select concat('drop event if exists ', event_name, ';') from information_schema.events; 
Powiązane problemy