Java JDBC在删除和插入新行后获取旧值

Java JDBC在删除和插入新行后获取旧值,java,mysql,sql,jdbc,Java,Mysql,Sql,Jdbc,我在mysql(InnoDB)中有一个超过700万行的表,我用Java做了一些操作。一切都正常工作,直到我不得不删除一些行并插入一些新行 问题是,当我进行选择时,我总是得到旧的值,而不是新闻。例如,如果我尝试计数(*),我得到的是2760,而不是2786 有什么想法吗 谢谢您的时间。使用count(id)而不是count(*)其中id是表的主键,因为对于count行count(id)比count(*) 您应该提到确切的问题,以便我们能够轻松解决它。因此,请提供一些您卡住的情况。如果数据库选择了自

我在mysql(InnoDB)中有一个超过700万行的表,我用Java做了一些操作。一切都正常工作,直到我不得不删除一些行并插入一些新行

问题是,当我进行选择时,我总是得到旧的值,而不是新闻。例如,如果我尝试计数(*),我得到的是2760,而不是2786

有什么想法吗

谢谢您的时间。

使用
count(id)
而不是
count(*)
其中id是表的主键,因为对于count行
count(id)
count(*)


您应该提到确切的问题,以便我们能够轻松解决它。因此,请提供一些您卡住的情况。如果数据库选择了自动提交选项,请检查数据库选项


如果无法自动提交,请在每个事务之后创建一个db.commit(),并使您的事务类同步(出于安全原因)。

对我来说就像是一个事务问题。自动提交关闭了吗?如果没有自动提交,可能您应该先
commit
删除和插入查询。可能是缺少提交或
可重复读取的影响
默认隔离级别。在运行select之前,在用于验证数据的工具中运行
commit
(或
rollback
),以确保已结束该事务。@一个没有名称的\u horse\u,由于可重复读取,我面临问题。你能写一个答案来解决这个问题吗?如果
id
是主键,那么
count(id)
count(*)
之间绝对没有区别,在这种情况下,两者都没有更快的速度,也没有不同的行为。无论如何,这都不能回答这个问题。