Ответ 1
Просто удалите процедуру, если она существует, а затем добавьте ее снова:
DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()
Я пытаюсь написать script, чтобы создать процедуру в базе данных MySQL, но я хочу проверить, сначала ли она exsit.
Я знаю, как это сделать для таблицы, но когда я использую тот же синтаксис для хранимой процедуры, он не компилируется.
Кто-нибудь знает? Благодаря
Просто удалите процедуру, если она существует, а затем добавьте ее снова:
DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()
SELECT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name');
Итак, вы можете сделать:
IF NOT EXISTS(SELECT 1 FROM mysql.proc p WHERE db = 'db_name' AND name = 'stored_proc_name') THEN
....
END IF;
Он не существует. Нам пришлось написать хранимую процедуру, которая имитирует те же функции. В основном мы создаем хранимые процедуры, вызывая хранимую процедуру, которая выполняет проверку "если существует".