2012-03-30 131 views
17

Estoy tratando de escribir un script para crear un procedimiento en la base de datos MySQL, pero quiero verificar si se trata primero.cómo decir crear un procedimiento si no existe en MySQL

Sé cómo hacerlo para una tabla, pero cuando uso la misma sintaxis para el procedimiento almacenado, no se compila.

¿Alguien sabe? Gracias

Respuesta

3

No existe. Tuvimos que escribir un procedimiento almacenado que imita la misma funcionalidad. Básicamente, creamos procedimientos almacenados llamando a un procedimiento almacenado que realiza la comprobación "si existe".

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

por lo que podría hacer:

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

Mi consulta MySQL argumenta "END IF;" - Tuve que eliminar esta línea. – Zon

18

tan sólo reduce el procedimiento si existe y volver a agregarlo:

DROP PROCEDURE IF EXISTS my_procedure; 

CREATE PROCEDURE my_procedure() 
... 
+0

dice error de sintaxis. –

Cuestiones relacionadas