为什么更新后mysql row_count总是-1?

时间:2013-07-12 21:44:13

标签: mysql sql-update rowcount

我执行一个影响1行的更新语句。然后我写select row_count(),结果总是-1。

我在mysql中检查了row_count但是我不明白我在mysql中配置什么来使row_count()打开。

任何人都可以帮助我?

当我像这样使用插件时也是一样。

INSERT INTO tb_fr_itemsderendicionfondorotatorio(VERSION,estado,ejercicio,importe,tema,oidObjeto,tipoObjeto,codigoObjeto,oid_Ren dicionFondoRotatorio,oid_AnulacionRendicionFondoRotatorio,fecha)VALUES(0,1,0,3000,'mt',18679,'AnticipoRendicion' , '2013000005',4979,NULL, '2013年5月25日');

SELECT ROW_COUNT();

我从SQLYog界面进行测试并始终返回-1。在服务器Im中使用hibernate和java。

1 个答案:

答案 0 :(得分:1)

最合理的解释是,您的“SELECT ROW_COUNT()”查询并未在同一数据库连接上紧跟INSERTUPDATEDELETE语句

此功能仅在同一数据库会话中有意义。如果查询是从不同的连接运行的,我们希望它返回-1。如果正在执行某些其他语句(例如,COMMIT语句),那么我们希望它返回-1。

你是从mysql命令行运行的吗?还是其他一些界面? (如果是另一个接口,我怀疑它可能正在执行COMMIT或正在搅拌连接。)


<强>随访:

我建议你使用mysql命令行客户端尝试相同的测试用例,看看你得到了什么结果。此外,您可以从Java应用程序执行相同的操作,并查看您到达那里的内容。

我怀疑这是SQLyog特有的问题,而不是MySQL本身的问题。但是来自另一个客户端的一些测试用例有助于确认这一点。

我使用SQLYog GUI v10.2和MySQL版本“5.1.46-community”运行测试,ROW_COUNT()返回预期值。