Как сказать создать процедуру, если она не существует в MySQL - программирование
Подтвердить что ты не робот

Как сказать создать процедуру, если она не существует в MySQL

Я пытаюсь написать script, чтобы создать процедуру в базе данных MySQL, но я хочу проверить, сначала ли она exsit.

Я знаю, как это сделать для таблицы, но когда я использую тот же синтаксис для хранимой процедуры, он не компилируется.

Кто-нибудь знает? Благодаря

4b9b3361

Ответ 1

Просто удалите процедуру, если она существует, а затем добавьте ее снова:

DROP PROCEDURE IF EXISTS my_procedure;
CREATE PROCEDURE my_procedure()

Ответ 2

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;

Ответ 3

Он не существует. Нам пришлось написать хранимую процедуру, которая имитирует те же функции. В основном мы создаем хранимые процедуры, вызывая хранимую процедуру, которая выполняет проверку "если существует".