apache / incubator-seata

:fire: Seata is an easy-to-use, high-performance, open source distributed transaction solution.
https://seata.apache.org/
Apache License 2.0
25.08k stars 8.73k forks source link

对于Oracle数据库中含有Timestamp字段的数据表无法进行二段校验 #6598

Closed 897584724 closed 1 month ago

897584724 commented 1 month ago

在进行回滚时,会进行数据校验,然而对于含有Timestamp字段的数据表,写到Undo_log表里的时候,只会保存timestamp字段中的秒之前的值到Undo_log里面,例如timestamp的值是2024-05-30 18:51:50:148381,那保存到Undo_log里面的值只有2024-05-30 18:51:50.0,然后回滚前校验seata会拿2024-05-30 18:51:50.0和2024-05-30 18:51:50:148381进行校验,然后就会校验不通过,导致无法回滚。需要设置seata: client:undo: dataValidation: false ,放弃二段校验才能进行回滚

897584724 commented 1 month ago

企业微信截图_20240603170252

897584724 commented 1 month ago

不进行回滚前校验感觉会有坑,所以是否能修复这个问题?

funky-eyes commented 1 month ago

https://seata.apache.org/zh-cn/docs/overview/faq#41