美文网首页
07_存储过程、触发器

07_存储过程、触发器

作者: 七枷琴子 | 来源:发表于2018-05-22 14:48 被阅读0次

存储过程

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

“存储在数据库”
  • SQL语句都是需要通过数据库相应组件编译后才能执行,最常见的例子是通过JDBC, 或ODBC创建数据区连接,发送SQL语句给数据库执行,并在程序中获得数据库返回的结果。
  • 存储过程则是把经常会被重复使用的SQL语句逻辑块封装起来,编译好,存储在数据库服务器端(这里的客户端是需要连接数据库的应用程序,但该应用程序本身也可能是一个Web服务器)。 这样,当存储过程再次被调用时,就无须编译了。 而调用的过程也无须发送SQL语句,只需要发送一个存储过程的标识, 数据库就可以找到相应的存储过程予以调用。
  • 数据库的存储过程通常是指一系列的SQL语句构成的”SQL代码块”, 和普通的SQL语句的不同点是, 代码块中包含了原生SQL所没有的元素, 例如cursor, variable,逻辑控制语句。

触发器:

触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、 Insert、 Delete 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。

触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:

  • 例如删除一个用户时,顺带删除该用户的所有帖子
    这里要注意使用OLD.id
    触发器用处还是很多的,比如校内网、开心网、Facebook,你发一个日志,自动通知好友,其实就是在增加日志时做一个后触发,再向通知表中写入条目。因为触发器效率高。而UCH没有用触发器,效率和数据处理能力都很低。

  • 还有,每插入一个帖子,都希望将版面表中的最后发帖时间,帖子总数字段进行同步更新,用触发器做效率就很高。下次课设计这样一个案例,写触发器时,对于最后发帖时间可能需要用declare方式声明一个变量,或者是用NEW.posttime来生成。

相关文章

  • 07_存储过程、触发器

    存储过程 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,...

  • 60、【数据库技术】【MySQL】存储过程与触发器

    存储过程 触发器

  • 浅谈数据库中的触发器

    触发器概念:触发器是数据库中一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要通过事件(增删...

  • 存储过程&触发器

    --创建存储过程 --调用存储过程 --查看存储过程 --删除存储过程 --after 触发器 操作之后执行事件 ...

  • PostgreSQL下无限极分类数据转NODES数据存储过程

    表和触发器 存储过程

  • SQL Server 触发器

    SQL Server 触发器 触发器是一种特殊类型的存储过程,它不同于之前的我们介绍的存储过程。触发器主要是通过事...

  • 数据库基本概念

    1、触发器 其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是 通过事件(增、删、改)...

  • 触发器

    什么是触发器,可以理解为特殊的存储过程。修改表中指定数据时执行的存储过程。触发器是被动的通过事件触发,存储过程是主...

  • MySQL 视图和存储程序

    MySQL 视图和存储程序 存储程序:存储函数、存储过程、触发器和事件的总称。 存储例程:存储函数+存储过程。 触...

  • 相关定义与使用汇总

    1.触发器: 触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的2.存储过程:存储过程就是编译好了的一些s...

网友评论

      本文标题:07_存储过程、触发器

      本文链接:https://www.haomeiwen.com/subject/vcwhjftx.html