我在 MySQL 数据库中有一个函数,可以确定移动设备的一些同步参数。该函数确定用户与数据库同步的最后日期/时间。在同步操作期间,我两次调用此服务器端函数。一旦我第二次调用它 - 整个 Sync_Records 表被锁定。我无法从任何地方的任何其他连接写入它(请注意,第一次调用后,表未锁定)。我将函数更改为过程 - 一切都很好 - 第二次调用后没有锁定。整个同步操作(包括对函数/过程的调用)都在一个事务中。这是一个 InnoDb 表。
该函数/过程只执行两个选择语句。他们将结果存储在局部变量中,然后返回日期时间变量。我不明白为什么桌子被锁定了。有没有人有任何想法?