Рассмотрены примеры объявления хранимых процедур и функций в MySQL:
DELIMITER |
DROP PROCEDURE IF EXISTS proc |
CREATE PROCEDURE proc()
BEGIN
SELECT * FROM a;
END;
|
DELIMITER ;
CALL proc();
DELIMITER |
DROP PROCEDURE IF EXISTS proc2 |
CREATE PROCEDURE proc2(IN pid INT)
BEGIN
SELECT * FROM a WHERE id = pid;
END;
|
DELIMITER ;
CALL proc2(2);
DELIMITER |
DROP PROCEDURE IF EXISTS proc3 |
CREATE PROCEDURE proc3(OUT rcount INT)
BEGIN
SELECT COUNT(*) INTO rcount FROM a;
END;
|
DELIMITER ;
CALL proc3(@rcount);
SELECT @rcount;
DELIMITER |
DROP PROCEDURE IF EXISTS proc4 |
CREATE PROCEDURE proc4(pid INT)
BEGIN
DECLARE ppid INT DEFAULT 4;
if(ppid > pid) THEN
SELECT * FROM a WHERE id = pid;
else
SELECT 'Bad argument';
END IF;
END;
|
DELIMITER ;
CALL proc4(6);
DELIMITER |
DROP FUNCTION IF EXISTS func |
CREATE FUNCTION func(pid INT) RETURNS VARCHAR(20)
BEGIN
DECLARE ppid INT DEFAULT 4;
if(ppid > pid) THEN
RETURN 'Good_Argument';
else
RETURN 'Bad_Argument';
END IF;
END;
|
DELIMITER ;
SELECT FUNC(7);