暂无图片
sql 数据库 update数据失败会不会触发触发器的调用?
我来答
分享
暂无图片 匿名用户
sql 数据库 update数据失败会不会触发触发器的调用?

update数据失败会不会触发触发器的调用?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
Thomas

一般不会。不过,若你的触发器是自治事务类型的,那么就会调用(以ORACLE为例)。

暂无图片 评论
暂无图片 有用 0
打赏 0
DarkAthena

主要看失败是在哪一个环节。
先假定触发器设置的是针对表上某个字段被更新时进行触发,且设置为before,则:

  1. 如果update的sql语法错误,则不会触发
  2. 如果update的语法正确,且数据类型符合要求,则会先触发—此时如果发现由于某些原因更新失败,触发器又会回滚掉;但是,如果这个触发器调用了一个自治事务的存储过程,那么自治事务里的内容就不会回滚。

另外还有after,或者监控其他事件的触发器,等等很多种情况,(比如可以设置只有在报错时才触发),所以这个答案不能一概而论,具体场景具体分析

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
集群中有一台服务器损坏卸载失败
回答 1
(1)修改/var/lib/gcware/DATASERVER文件,去掉损坏节点IP信息;(2)修改/etc/corosync/corosync.conf文件,去掉损坏节点IP信息。
SQL优化改写
回答 2
oracle的优化器会根据不同的数据分布, 生成对应的执行计划, 不需要改写:  场景1的执行计划应该是b去重后Nested loopsa;&nbsp
在SQL登入界面中,在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
回答 1
已采纳
外网。首先看端口是否有映射。telnet 端口能否通,防火墙关闭。然后要起用TCP/IP 协议。如果用的机器名 还是启用 命名管道
有个sql 在同一个库上执行 但是执行时间不一样 这是什么原因?
回答 1
运行时线程有可能在排队或者内存暂时被占用,或者缓存要重新清空加载都有可能导致以上问题发生
下面的语句那个效率高
回答 2
对于更新主键的情况,MySQL采用了一种更复杂的处理方式。在事务提交前,对旧记录只做一个deletemark操作。这个deletemark标记主要是为了在事务范围内标记该记录已经被逻辑删除,但还不能真
SQL 左连接关联字段的顺序调换,结果一样吗?
回答 2
已采纳
1、不影响结果;2、测试1步:SQL>selectfromt1;IDNAME1name12name2SQL>selectfromt2;IDLOC2test2步:第1次执行SQL>se
SQL指标波动很大,怎么做数据质量监控?
回答 1
https://zhuanlan.zhihu.com/p/56676915看看这个,有很多数据质量监控平台可以看一下,例如ApacheGriffin(Ebay开源数据质量监控平台)Deequ(Amaz
SQL将查询汇总结果更新到另一表中的某个字段,谁帮我写个例子?
回答 3
已采纳
看错了。更新的话。你就将上述的testtable变为临时表。然后再用这个临时表关联更新
SQL如何编写
回答 1
select用户姓名,(select总订单金额(select用户id,sum(订单金额)as总订单金额from订单表groupby用户id)where用户表.用户id订单表.用户id),(select
不熟悉客户的业务流程和业务逻辑,能否做SQL语句优化?
回答 4
我倒是觉得,如果熟悉客户的业务流程和业务逻辑,那么在某些sql优化上,可以获得不一样的思路。比如有时候为了获取一个字段代码的翻译,去关联了一个超大表,但你如果熟悉业务的话,会知道这个字段代码翻译有在另