过程,函数,触发器的区别

存储过程一般是作为一个独立的部分来执行

函数可以作为查询语句的一个部分来调用;

​存储过程:

只在创建时进行编译,以后执行存储过程都不需要再重新编译,而一般SQL语句每执行一次就编译一次,☞所以使用存储过程可以提高数据库执行速

可以在过程中调用另一个存储过程,或者是函数,☞简化复杂语句

当对数据库进行复杂操作时(如对多个表进行增删改),可将此复杂操作用存储过程封装起来

参数有三种(In、Out、In Out),可返回0~多个参数值。

​函数

只有一种参数(In,可省),只能用return返回单一值

可在 DML或Select 中调用函数。由于函数可以返回一个表象,因此它可以在查询语句中位于From关键字的后面。

触发器

数据库的一些事件如新增修改删除,可以触发的一些操作(本质上是存储过程,存储过程需要程序调用,而触发器会自动执行)

​触发器不接受参数,一个表上最多可有12个触发器,但同一时间、同一事件、同一类型的触发器只能有一个。并各触发器之间不能有矛盾。

在一个表上的触发器越多,对在该表上的DML操作的性能影响就越大。

触发器最大为32KB。(若确实需要,可以先建立过程,然后在触发器中用CALL语句进行调用)

在触发器的执行部分只能用DML语句,不能使用DDL语句

触发器中不能包含事务控制语句TCL (COMMIT,ROLLBACK,SAVEPOINT)。因为触发器是触发语句的一部分

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值