利君工作室 发表于 2025-11-19 16:47:27

有人知道业务公式如何进行事务控制的吗?

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

yuansijue 发表于 2025-11-20 09:03:25

有两个问题
1、是什么数据库呢?mysql,sqlserver还是其他的?
2、用什么方式查不到触发器写的数据的?正常来说是在一个事务内的,都是看得到的

yuansijue 发表于 2025-11-20 09:05:05

理论上跟事务等级应该没有啥关系
但是mysql比较特殊一些,默认等级是REPEATABLE-READ,可以试一下改my.ini增加一个配置transaction-isolation = READ-COMMITTED后重启试试

利君工作室 发表于 2025-11-20 09:28:02

用的数据库是mysql8.0,云表公式写的一个表,这个表触发器写了另一个表,在同一个事务中用存储过程掉用时,查到了这个触发器写的数据。
在my.ini增加一个配置transaction-isolation = READ-COMMITTED后重启,查不到数据
在my.ini增加一个配置transaction-isolation = READ-UNCOMMITTED后重启,可以查到数据
想了解一下业务公式是如何处理事务的

yuansijue 发表于 2025-11-20 11:37:57

这个执行存储过程是在哪里执行的?业务公式里面执行注册到云表的存储过程吗,这个跟业务公式不是一个事务的,是通过外部数据源单独执行的事务。
my.ini配置的是默认事务等级,要设置READ-COMMITTED以上才是正常的,不能改为READ-UNCOMMITTED,理论上来说应该是不存在这个现象,在业务公式的执行过程中,包括执行的触发器都是在一个事务里面的,除非这个触发器的存储过程代码,写了开启子事务

利君工作室 发表于 2025-11-20 16:20:37

业务公式里面执行的是注册到云表的存储过程,和业务公式是在一个事务的:前一个业务公式数据写云表数据和触发另一个后台表,后一个业务公式是注册到云表的存储过程,里面有访问触发器写的数据。数据也是一起回滚了的,就是没访问到。
我在my.ini配置回默认事务等级,设置为READ-COMMITTED了,问题通过其的方法处理了,谢谢!

yuansijue 发表于 2025-11-21 11:35:23

这样是访问不到的,云表触发执行的存储过程,跟业务公式不在一个事务的,要访问到的话,需要用填表公式去触发存储过程,或者在触发器里面去执行存储过程
页: [1]
查看完整版本: 有人知道业务公式如何进行事务控制的吗?