问题如下:(1)MySQL 触发器的执行和事务到底是和关系?
a,触发器内的操作是在整个事务COMMIT后再统一执行,
b,还是每个操作都执行触发器,但如果整个事务回滚,触发器内的操作也会回滚?(2)如果事务中某个操作的触发器里作的不是标准数据库操作,而是调用了UDF函数进行了其他操作,例如去删了
memcached中的数据,那么如果发生事务回滚,memcached中的数据是否删掉了? 如果(1)是a,则memcached中的数据不会丢失;但如果是b的话,则memcached中的数据丢失!
a,触发器内的操作是在整个事务COMMIT后再统一执行,
b,还是每个操作都执行触发器,但如果整个事务回滚,触发器内的操作也会回滚?(2)如果事务中某个操作的触发器里作的不是标准数据库操作,而是调用了UDF函数进行了其他操作,例如去删了
memcached中的数据,那么如果发生事务回滚,memcached中的数据是否删掉了? 如果(1)是a,则memcached中的数据不会丢失;但如果是b的话,则memcached中的数据丢失!
解决方案 »
- mysqldump导出乱码!
- MySQL® Administrator’s Guide and Language Reference
- mysql 去除重复sql语句
- 请教高手,mysql字符转换问题
- Mysql出现下面的错误是怎么回事啊,MySql: ready for connections 041203 14:41:27 MySql: Shutdown Complete
- 菜鸟求救,各位大虾救命呀
- TYPE=INNODB的问题
- 为什么我的MySql不认识“邨”?
- mysql查tbl_a的id不在tbl_b的userid中
- mysql如何将A(172.20.0.1)服务器上A1表的数据导入到B(172.20.1.1)服务器上的B1表中
- 执行SHOW BINLOG EVENTS后报错,请教
- 一个面试题,大家讨论
a,触发器内的操作是在整个事务COMMIT后再统一执行,
b,还是每个操作都执行触发器,但如果整个事务回滚,触发器内的操作也会回滚?
这样的话,问题(2)中memcached中的数据肯定就会丢失了,因为对memcached的操作肯定是回滚不得的了!
触发器是行级触发。。比如你的INSERT触发器 你一次性插入多条...那么它也是一条触发一次触发器...如果事务回滚,触发器的操作也回滚,触发的操作也回滚(对于行级。)