Подтвердить что ты не робот

Написание дополнительных параметров в хранимых процедурах в MySQL?

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

Как создать хранимую процедуру, которая принимает необязательные параметры?

4b9b3361

Ответ 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