存储过程 procedure
优点
- 存储过程可封装,并隐藏复杂的商业逻辑。
- 存储过程可以回传值,并可以接受参数。
- 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
-
缺点
存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
- 存储过程的性能调校与撰写,受限于各种数据库系统。
调用 MySQL 存储过程创建用户定义的 SQL 过程
create procedure
删除数据库中已创建的存储过程
drop procedure
调用 MySQL 存储过程时候,需要在过程名字后面加“()”,即使没有一个参数,也需要“()”call 存储过程名()
举个栗子
CREATE PROCEDURE proc()
BEGIN
DECLARE num INT;
SET num = 1;
truncate table test;
set autocommit=0;
set unique_checks=0;
WHILE num < 10 DO
INSERT INTO
`test`
(
`id`,
`name`,
`email`,
`mobile`,
`submission_date`
)
VALUES (
num,
concat(num,'tester'),
concat(num,'tester@qq.com'),
15000000000 + num,
now()
);
SET num = num + 1;
END WHILE;
set autocommit=1;
set unique_checks=1;
END$$
delimiter; //执行结束
call proc();//调用存储过程
drop procedure proc;//删除存储过程
TRUNCATE test;//删表