问题如下:(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中的数据丢失!
a,触发器内的操作是在整个事务COMMIT后再统一执行,
b,还是每个操作都执行触发器,但如果整个事务回滚,触发器内的操作也会回滚?
这样的话,问题(2)中memcached中的数据肯定就会丢失了,因为对memcached的操作肯定是回滚不得的了!
触发器是行级触发。。比如你的INSERT触发器 你一次性插入多条...那么它也是一条触发一次触发器...如果事务回滚,触发器的操作也回滚,触发的操作也回滚(对于行级。)