0

我执行了一条影响 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-05-25');

选择行数();

我正在从 SQLYog 界面进行测试并始终返回-1。在服务器中,我使用 java 休眠。

4

1 回答 1

1

最合理的解释是SELECT ROW_COUNT(),在同一数据库连接上,您的 " " 查询没有紧跟在INSERT, UPDATEorDELETE语句之前。

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

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


跟进:

我建议你使用 mysql 命令行客户端尝试同样的测试用例,看看你会得到什么结果。此外,您可以从 Java 应用程序中执行相同的操作,然后看看您会得到什么。

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

我已经使用 SQLYog GUI v10.2 和 MySQL 版本 '5.1.46-community' 进行了测试,并且 ROW_COUNT() 正在返回预期值。

于 2013-07-12T22:38:25.853 回答