sql >> Databáze >  >> RDS >> Mysql

Práce s událostmi v MySQL

Věřím, že to myslíte opačným směrem:Nemůžete vytvořit událost v uložené proceduře, ale můžete vytvořte uloženou proceduru a zavolejte ji z události.

Příklad:

delimiter $$
create procedure myProc()
-- Dummy procedure to move the data from mainTable to backupTable, 
-- and then clear (truncate) mainTable
begin
    insert into backupTable select * from mainTable;
    truncate mainTable;
end $$
delimiter ;

-- Now, suposing that you want to execute this procedure every hour:
delimiter $$
create event myEvent
    on schedule every 1 hour
    do
        begin
            call myProc();
        end $$
delimiter ;

Můžete to napsat jako jakýkoli jiný dotaz na pracovní ploše nebo přímo v klientovi příkazového řádku.

O vašem zájmu

Po přečtení vašeho komentáře věřím, že jste trochu zmatení z toho, co je MySQL Workbench.

MySQL Workbench je pouze grafická aplikace, která vám umožňuje připojit se k serveru MySQL a provádět dotazy a úkoly správy. Ale Workbench není jádro MySQL... je to pouze prohlížeč (možná se steroidy, ale přece jen prohlížeč).

Nyní plánovač událostí nesídlí ve Workbench, ale v instanci serveru MySQL, ke které se připojujete. Stejně jako tabulky, pohledy, procedury a funkce nejsou uloženy v rozhraní Workbench, ale na serveru, jsou události také uloženy na serveru.

(Ano, věřím, že je relevantní SNAFU, že naplánované události se nikde v grafickém rozhraní nezobrazují, ale... po nějaké době se člověk naučí žít s tímto druhem frustrace a jít dál životem)

Možná je vaše jediná starost:"Hele, a co když chci vědět, jaké události jsou nastaveny na spouštění v plánovači událostí?" Můžete provést dotaz „show events“ a zobrazit seznam událostí v aktuální databázi a můžete provést „show create event yourEvent“ a zobrazit create event syntaxe této události.

Trvám na tom:Přečtěte si příručku a mějte kopii po ruce (stáhněte si příručku pro svou verzi MySQL zde ).




  1. Nejlepší zdroje pro vzdělávání a školení PostgreSQL

  2. Převod Long na Varchar2

  3. LPAD v SQL Server 2008

  4. Před vytvořením tabulky v Oracle zkontrolujte, zda existuje nebo neexistuje