我有一个存储过程,它从表 A 中选择值,然后用于从表 B 中选择。如果行数小于阈值,它会更新表 A 的值并重新选择表 B。
Select val into v from A;
Select ID from B where total > v;
if (Found_Rows() < 3) then
Update A set val = val +1;
end if;
我关心的是当这个存储过程被同时命中并且行数> 3并且更新运行多次时。
那么首先,这会发生吗?如果是这样,由于存储过程中不允许锁定,我该如何防止这种情况发生?
感谢您提前提供信息!