我执行一条影响1行的update语句。然后编写select row_count(),结果总是-1。
我在mysql中签出了计数,但我不明白要在mysql中配置什么才能使row_count()继续运行。
有人能帮我吗?
当我像这样使用insert时,情况也是一样的。
在tb_fr_itemsderendicionfondorotatorio (版本、estado、ejercicio、importe、tema、oidObjeto、tipoObjeto、codigoObjeto、oid_RendicionFondoRotatorio、oid_AnulacionRendicionFondoRotatorio、fecha)中插入值(0,1,0,3000,'mt',18679,'AnticipoRendicion','2013000005',4979,NULL,'2013-05-25');
选择ROW_COUNT();
我正在从SQLYog接口进行测试,并且总是返回-1。在服务器中,我使用hibernate和java。
发布于 2013-07-12 22:38:25
最合理的解释是,在同一数据库连接上,您的"SELECT ROW_COUNT()“查询没有被INSERT、UPDATE或DELETE语句直接放在前面。
此函数仅在同一数据库会话中具有意义。如果查询是从不同的连接运行的,我们希望它返回a-1。如果有其他语句正在执行(例如,COMMIT语句),那么我们希望它返回a-1。
您是否从mysql命令行运行此操作?还是其他接口?(如果它是另一个接口,我怀疑它可能正在执行COMMIT或正在搅动连接。)
后续行动:
我建议您使用mysql命令行客户端尝试相同的测试用例,并查看结果。另外,您也可以在Java应用程序中做同样的事情,并查看您在那里得到了什么。
我怀疑这是SQLyog特有的问题,而不是MySQL本身的问题。但另一个客户端的一些测试用例将有助于证实这一点。
我使用SQLYog GUIV10.2运行了一个测试,MySQL版本'5.1.46-community',ROW_COUNT()返回了期望值。
https://stackoverflow.com/questions/17624490
复制相似问题