mysql准备好的语句存储(缓存)选择的结果?

发布于 2024-10-04 16:03:20 字数 422 浏览 1 评论 0原文

首先,这个问题指的是准备语句的c api,以及mysql版本5.1.48。

我有一个程序(A)执行“选择”,另一个程序(B)执行“插入/更新” 我希望程序(A)在程序(B)的“插入”之后执行“选择”来识别新行。

  1. 假设程序(A)使用准备好的语句生成“select”的结果集。
  2. 现在,程序(B)“插入”新行。
  3. 当程序(A)使用相同的准备好的语句“选择”时,它不会返回新插入的行。

我尝试在语句句柄上调用 mysql_stmt_reset() 但没有效果。

如何使程序(A)识别出有问题的表已更改并获取新数据?
(如果程序(A)实际上正在缓存结果,我想在数据库表保持不变的情况下保留该行为。)

当更新一行并再次选择时,将检索更新的信息。但新插入的行不会被选择!呸。

谢谢

First, this question refers to c api of prepared statements, and mysql version 5.1.48.

I have one program(A) that does "select" and another(B) does "insert/update"
I'd like the program(A) that does "select" to recognize new rows after program(B)'s "insert".

  1. Suppose program(A) generates result set of "select" using a prepared statement.
  2. Now, program(B) "inserts" new rows.
  3. When program(A) "select" using the same prepared statement, it won't return the newly inserted rows.

I've tried calling mysql_stmt_reset() on the statement handle but no effect.

How do I make the program(A) to recognize that the table in question is changed and grab a new data?
(If program(A) is actually caching the results, I would like to keep that behavior while db table remains the same.)

When a row is updated, and selected again, the updated info is retrieved. But newly inserted row won't be selected! bah.

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日情怀 2024-10-11 16:03:23

根据记录,

是自动提交关闭导致了问题。

for the record,

it was autocommit off that caused the problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文