我有多个这样的数据库连接情况:
db connection 1: INSERT xyz
(very short time passes)
db connection 2: SELECT [looking for xyz]
Run Code Online (Sandbox Code Playgroud)
有时会SELECT发现xyz而有时却找不到(因为它与不在同一个db连接上INSERT)。如果我把sleep(1)后INSERT then the SELECT总能找到xyz。
对于数据库连接1,如何使其等待,直到INSERT完成并且新行可用于SELECTs另一个数据库连接上运行?
我的桌子是innodb。用例是在连接1上插入一个经过身份验证的会话ID,然后重定向到一个经过身份验证的页面,然后当对经过身份验证的页面的请求进入(在另一个连接上)时,我们会寻找会话ID来对该请求进行身份验证。可以放慢登录速度,直到INSERT完全完成后再登录,这样经过身份验证的会话ID才可用于其他请求,然后再返回。