Stored Procedure & Trigger
Stored Procedure & Trigger
存储过程
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
优点
- 封装编译的sql语句,能隐藏复杂的商业逻辑
- 可以被外部程序直接调用,接受参数并返回值
缺点
- 存储过程不可被select指令运行
- 存储过程往往定制化于特定的数据库上,对编程语言的接口没有达成同意规范。当切换到其他厂商的数据库系统时,一般需要重写原有的存储过程
- 存储过程的性能调校与撰写,受限于各种数据库系统
- 目前业界几乎不用存储过程,存储过程的功能完全可由编程语言代替
触发器
触发器是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行。
和编程语言中的事件机制思想相似。
触发器创建四要素
- 监视地点(table)
- 监视事件(insert/update/delete)
- 触发时间(after/before)
- 触发事件(insert/update/delete)
一个例子
1 |
|
Comment