Closed 897584724 closed 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 ,放弃二段校验才能进行回滚
不进行回滚前校验感觉会有坑,所以是否能修复这个问题?
https://seata.apache.org/zh-cn/docs/overview/faq#41
在进行回滚时,会进行数据校验,然而对于含有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 ,放弃二段校验才能进行回滚