Написание дополнительных параметров в хранимых процедурах в MySQL?
Я хотел бы создать хранимую процедуру, которая обновляет либо все поля в таблице, либо несколько из них в соответствии с переданными ей параметрами.
Как создать хранимую процедуру, которая принимает необязательные параметры?
Ответ 1
Optional Parameters пока не поддерживаются в MySQL. Я предлагаю вам передать значение null в вашем параметре и внутри вашей хранимой процедуры имеет оператор IF.
DELIMITER $$
CREATE PROCEDURE procName
(IN param VARCHAR(25))
BEGIN
IF param IS NULL THEN
-- statements ;
ELSE commands
-- statements ;
END IF;
END$$
DELIMITER ;
Ответ 2
Частным случаем является, когда параметр cant 'равен NULL, т.е. является ключевым. Я использую трюк для этого случая: я установил параметр равным -1:
CREATE PROCEDURE procCreate
(IN id_cosa INT(11))
BEGIN
IF id_cosa != -1 THEN
~~(your code here)~~
END IF
END