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

标签 mysql sql-update rowcount

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

我查看了row_count在 mysql 中,但我不明白我必须在 mysql 中配置什么才能启用 row_count() 。

有人可以帮助我吗?

当我像这样使用插入时也是同样的事情。

插入 tb_fr_itemsderendicionfondorotatorio(版本、estado、ejercicio、importe、tema、oidObjeto、tipoObjeto、codigoObjeto、oid_Ren‌​dicionFondoRotatorio、oid_AnulacionRendicionFondoRotatorio、fecha)值(0,1,0,3000, 'mt',18679,'AnticipoRendicion' ,'2013000005',4979,NULL,'2013-05-25');

选择 ROW_COUNT();

我正在从 SQLYog 接口(interface)进行测试,并且总是返回 -1。在服务器中,我使用 hibernate 和 java。

最佳答案

最合理的解释是,在同一数据库连接上,您的“SELECT ROW_COUNT()”查询没有紧接着 INSERT UPDATEDELETE 语句。

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

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

<小时/>

后续:

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

我怀疑这是 SQLyog 特有的问题,而不是 MySQL 本身的问题。但其他客户的一些测试用例将有助于证实这一点。

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

关于mysql - 为什么更新后mysql row_count总是-1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17624490/

相关文章:

.net - 如何尽快将大量记录插入 MySql 数据库

php - 嵌套 foreach 循环的错误

php - 更新两行 - MySQL

mysql - 使用 JOIN 更新基于链接表的表

database - Cassandra 列族的行数

php - 更新表格行中的数据[PHP]

mysql - Laravel 查询生成器有两个字段

Mysql - If 语句,执行更新

sql-server - 使用 SET ROWCOUNT 安全吗?

sql-server - SSRS 报告表添加列表达式记录 x of y?