我正在使用 MySQL C API 从C ++使用MySQL。 我正在使用的应用程序由多个并发的进程(分叉)组成,并且不使用 C API多语句执行(又名{{ 1}})。
Process#1必须在表中插入一条记录,Process#2必须在发生事件时选择它。
进程1执行以下操作:CLIENT_MULTI_STATEMENTS
流程2执行以下操作:
// ...
mysql_query("lock tables `aaa` write, `bbb` write");
mysql_query( /* select something from `aaa` */ );
/* retrieve, use and dispose result */
mysql_query( /* insert something into `bbb` */ );
mysql_query( /* update records into `aaa` */ );
mysql_query("unlock tables");
// DO SOMETHING THAT TRIGGERS PROCESS#2 SELECT STATEMENT HERE
//...
有时,Process#2实际上会检索预期的结果,而有时它返回零行,也就是找到匹配的零行。
为什么Process#2中的 select 语句不等待? 我应该专注于使用MySQL API /查询的方式还是与此无关?