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

Хочу создать хранимую процедуру, в которую программист будет передавать аргумены. Пусть есть таблица animal с полями anim_id(int), anim_name (varchar).

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

create Procedure addAnimal(int id, varchar name){ //Псевдокод 
insert into animal values(id,name); 
}  

Вопросы: Как создать такую процедуру?

Какой командой вызвать? (подойдёт ли, к примеру, call addAnimal(12, 'dog'); ?)


Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

SQL Fiddle

SQL

CREATE TABLE IF NOT EXISTS tbl (
     anim_id int AUTO_INCREMENT PRIMARY KEY, 
     anim_name varchar(100)
);

INSERT INTO tbl(anim_name) 
VALUES 
('cat'),
('donkey');

SELECT * FROM tbl;

CREATE PROCEDURE addAnimal(IN name VARCHAR(100))
BEGIN
    INSERT INTO tbl (anim_name) 
    VALUES (name);
END

CALL addAnimal('cow');

SELECT * FROM tbl;
→ Ссылка