我想弄清楚LOCK IN SHARE MODE和mysqli交易的细节。
我的逻辑有各种各样的分支,我在下面提供了一个示例
Turn Of Autocommit(This begins the transaction from what I can tell)
Some Select Statement
if(a)
{
Update Statement #1 To Row A
}
else
{
No updating
}
Some 2nd Select Statement
if(x)
{
Update Statement #2 To Row B
}
else
{
if(z)
{
Some Insert Statement
}
else
{
die
}
}
Commit
我的问题是,如果提交发生在最后,那么任何骰子错误情况都会导致整个事情被抛弃吗?如果我的select语句都具有LOCK IN SHARE MODE,这种设置是否是一种安全的方法来确保几十个同时发出的请求不会互相踩踏?如果他们触摸了同一个脚本的其他副本可能触及的行,他们是否都应该进行锁定?