有知道,业务公式的事务是如何控制的吗?用云表业务公式生成的记录,记录中触发器写了别的表,但在一个事务中查不到触发器写的数据。只有将事务级别设置为未提交可读transaction-isolation = READ-UNCOMMITTED,在一个事务中写的数据,按理在READ-COMMITTED事务级别也能读取到,有人知道吗?
yuansijue已获得悬赏 3 云币

最佳答案

这样是访问不到的,云表触发执行的存储过程,跟业务公式不在一个事务的,要访问到的话,需要用填表公式去触发存储过程,或者在触发器里面去执行存储过程 ...
+10
收藏
6 条回帖
有两个问题
1、是什么数据库呢?mysql,sqlserver还是其他的?
2、用什么方式查不到触发器写的数据的?正常来说是在一个事务内的,都是看得到的
+10
理论上跟事务等级应该没有啥关系
但是mysql比较特殊一些,默认等级是REPEATABLE-READ,可以试一下改my.ini增加一个配置transaction-isolation = READ-COMMITTED后重启试试
+10
用的数据库是mysql8.0,云表公式写的一个表,这个表触发器写了另一个表,在同一个事务中用存储过程掉用时,查到了这个触发器写的数据。
在my.ini增加一个配置transaction-isolation = READ-COMMITTED后重启,查不到数据
在my.ini增加一个配置transaction-isolation = READ-UNCOMMITTED后重启,可以查到数据
想了解一下业务公式是如何处理事务的
+10
这个执行存储过程是在哪里执行的?业务公式里面执行注册到云表的存储过程吗,这个跟业务公式不是一个事务的,是通过外部数据源单独执行的事务。
my.ini配置的是默认事务等级,要设置READ-COMMITTED以上才是正常的,不能改为READ-UNCOMMITTED,理论上来说应该是不存在这个现象,在业务公式的执行过程中,包括执行的触发器都是在一个事务里面的,除非这个触发器的存储过程代码,写了开启子事务
+10
业务公式里面执行的是注册到云表的存储过程,和业务公式是在一个事务的:前一个业务公式数据写云表数据和触发另一个后台表,后一个业务公式是注册到云表的存储过程,里面有访问触发器写的数据。数据也是一起回滚了的,就是没访问到。
我在my.ini配置回默认事务等级,设置为READ-COMMITTED了,问题通过其的方法处理了,谢谢!
+10
这样是访问不到的,云表触发执行的存储过程,跟业务公式不在一个事务的,要访问到的话,需要用填表公式去触发存储过程,或者在触发器里面去执行存储过程
+10
需要登录后才可进行回复 登录

玩转云表从入门到精通
扫码添加微信立即领取

·云表创始人授课文件
·加入社群与培训学习
·切磋云表开发玩法

商务咨询:0756-3335860
客服咨询