数据库每天都产生完全一致的重复数据,2条或者3条都有,sql逻辑是先更新,如果更新为0则插入

你需要注意,tidb的默认事务隔离级别是RR.不是RC.

https://docs.pingcap.com/zh/tidb/stable/transaction-isolation-levels#可重复读隔离级别-repeatable-read

当事务隔离级别为可重复读时,只能读到该事务启动时已经提交的其他事务修改的数据,未提交的数据或在事务启动后其他事务提交的数据是不可见的。对于本事务而言,事务语句可以看到之前的语句做出的修改。