2012-03-30 19 views
17

Sto provando a scrivere uno script per creare una procedura nel database MySQL, ma voglio verificare se è la prima cosa da escludere.come dire creare la procedura se non esiste in MySQL

So come farlo per una tabella, ma quando uso la stessa sintassi per la stored procedure, non viene compilata.

Qualcuno sa? Grazie

risposta

3

Non esiste. Abbiamo dovuto scrivere una procedura memorizzata che riproduce la stessa funzionalità. Fondamentalmente creiamo stored procedure chiamando una procedura memorizzata che esegue il controllo "se esiste".

9
SELECT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name'); 

Così si potrebbe fare:

IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN 
.... 
END IF; 
+0

mio query MySQL sostiene "END IF;" - Ho dovuto rimuovere questa linea. – Zon

18

Basta inserire la procedura se esiste e poi ri-aggiungerlo:

DROP PROCEDURE IF EXISTS my_procedure; 

CREATE PROCEDURE my_procedure() 
... 
+0

dice errore di sintassi. –

Problemi correlati