MySQL 存储过程
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
可以理解为使用 SQL 进行编程,可以被数据库自己调用或者第三方程序(Java、Python、Bash 等)调用。
优势
效率性
存储过程编译一次后,就会存到数据库,每次调用时都直接执行。
安全性
完成某个特定功能的存储过程一般只有特定的用户可以使用,具有使用身份限制,更安全。
复用性
存储过程往往是针对特定的功能编写的,可以重复调用。
可维护性
当功能要求发生小的变化时,修改存储过程即可。
降低网络流量
存储过程编译好会放在数据库,远程调用时,不用传输大量 SQL 语句。
操作
语法
1 | delimiter $$ |
触发器
MySQL 触发器(Trigger)是一种特殊的存储过程,用来实现数据约束,数据验证,数据复制等功能;当表上的操作(INSERT、UPDATE、DELETE)发生时,触发器会自动执行。1
2
3
4
5
6
7
8DROP TRIGGER IF EXISTS name;
delimiter $$
#创建触发器
CREATE TRIGGER name AFTER/BEFOR INSERT ON table FOR EACH ROW
BEGIN
SQL;
END;$$
delimiter ;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 君玉自牧!