L'istruzione DO

Ultima revisione a cura di Sante Caserio, 07 Febbraio, 2010 23:16

A volte vogliamo che una funzione o una Stored Procedure venga eseguita, ma essa non restituisce un risultato, oppure non ci interessa conoscere questo risultato.

Poichè le funzioni possono essere inserite in una espressione SQL e le Stored Procedure possono essere richiamate con CALL, possiamo tranquillamente usare una SELECT per chiamarle. Tuttavia in questo modo MySQL ci invierà un recordset (eventualmente vuoto), allocando memoria sul server e sul client e aumentando il traffico di rete. Per evitarlo, invece di SELECT è possibile utilizzare DO.

1 DO CALL faiQuesto(); -- stored procedure
2 DO RELEASE_LOCK('mioLock'); -- funzione

Non è possibile eseguire altre istruzioni all’interno di DO (OPTIMIZE, KILL, etc). Solo le espressioni SQL sono ammesse. In compenso è possibile eseguire più funzioni con una sola chiamata:

1 DO miaFunzione(), tuaFunzione(), nostraFunzione();