存储过程 procedure
优点
- 存储过程可封装,并隐藏复杂的商业逻辑。
- 存储过程可以回传值,并可以接受参数。
- 存储过程无法使用 SELECT 指令来运行,因为它是子程序,与查看表,数据表或用户定义函数不同。
-
缺点
存储过程,往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。
- 存储过程的性能调校与撰写,受限于各种数据库系统。
调用 MySQL 存储过程创建用户定义的 SQL 过程create procedure删除数据库中已创建的存储过程drop procedure
调用 MySQL 存储过程时候,需要在过程名字后面加“()”,即使没有一个参数,也需要“()”call 存储过程名()
举个栗子
CREATE PROCEDURE proc()BEGINDECLARE num INT;SET num = 1;truncate table test;set autocommit=0;set unique_checks=0;WHILE num < 10 DOINSERT 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;//删表
