存储过程和触发器的区别

需要明确的是,虽然存储过程和触发器都是数据库中的工具,但它们的功能和行为有很大不同。
我们先来说说最重要的事情。
存储过程其实非常简单。
它就像一组预先编写的 SQL 语句,存储在数据库中,一旦编译就永远运行。
比如我们去年跑的一个项目,我们用存储过程处理了近3 000步的数据。

还有一点,启动器的功能也至关重要。
它是一种特殊的存储过程,不由程序员直接调用,而是由数据库事件自动触发。
例如,当您更新表时,触发器会自动运行。
我想大多数人都没有注意到这一点。
这实际上非常困难,因为它可以在不知情的情况下更改数据。

一开始我以为存储过程和触发器的功能是一样的,后来发现我错了。
存储过程主要用于执行顺序操作,而触发器则用于保证数据完整性。
等等,还有一件事,触发器可以强制引用完整性,这在处理多表关系时特别有用。

所以如果你是做数据库开发的话,了解存储过程和触发器之间的区别很重要。
我认为值得尝试在实际项目中更多地使用它们,看看可以解决哪些问题。

Oracle数据库中有关触发器问题

触发器自动运行以验证和记录数据。

DML 触发器响应 INSERT、UPDATE 和 DELETE。

DDL触发器响应数据库结构的变化。

替代触发器用于视图操作。

触发器名称是唯一的并用于识别。

触发点:之前、之后。

触发事件:INSERT、UPDATE、DELETE。

表名指定触发对象。

行级触发器是逐行执行的。

语句级触发器仅执行一次。

禁用/启用触发器:ALTER TRIGGER。

错误检查:淋浴。

触发器用于复杂的业务逻辑和数据一致性。

自己掂量一下。

什么是触发器(trigger)? 触发器有什么作用?

记得有一次我在公司数据库里做某事,不小心删除了一条记录。
结果整个表的数据就乱了。
老板急得满头大汗,说如果有一个可以自动控制的东西就好了。
接下来,技术人员创建了一个触发器并将其插入到订单表中。
只要客户余额不足,就无法下新订单。
他边输入代码边说,这东西就像一个自动门卫,谁想进去就得先经过它。
当时2 01 9 年我们公司的MySQL数据库大概有3 个这样的触发器,分别是库存、授权和支付管理。
我必须更换| DELIMITER 之后加一? CREATETRIGGER前面的&是什么意思?等等,还有一件事,执行触发器时表会被锁定吗?