2014-04-18 26 views
8

Se voglio cancellare qualche evento ho bisogno di interrogare qualcosa come "DROP EVENT IF EXISTS eventname" Ma non riesco a trovare il comando di cancellare tutti gli eventi contemporaneamente, devo cancellare l'evento uno per uno. C'è qualche SQL di cancellazione di tutti gli eventi in una volta?Come cancellare tutti gli eventi in MySQL

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

non funziona.

risposta

12

campione uno:

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

se è possibile eliminare l'evento con DROP EVENT IF EXISTS e aggiungere nuovamente con il nuovo orario programmato.

Per eliminare definitivamente un evento da soli, è possibile utilizzare DROP EVENT:

DROP EVENT [IF EXISTS] event_name 

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

+0

esempio uno funziona bene, grazie! – Yellove

2

Penso che sia necessario utilizzare la tabella INFORMATION_SCHEMA.EVENTS per raccogliere tutti gli eventi attivi e quindi costruire ed eseguire le istruzioni DROP EVENT.

+0

Per favore dimmi come costruire le istruzioni combinare "DROP EVENT .." con "SELECT" EVENT_NAME' FROM 'information_schema '.'EVENTS'" – Yellove

1

per costruire una query eventi goccia, si può fare qualcosa di simile:

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