我正在开发一款 CRM 桌面应用程序,该应用程序一次将由多个代理使用,并且所有代理都将浏览相同的客户列表。我在这里需要做的是避免代理之间的冲突,因此一旦代理从列表中选择了客户,其他人就不应该再看到该行,或者换句话说,他们不应该能够选择该客户排直到第一个代理完成!想到的最简单的方法可能听起来很愚蠢,那就是添加两个字段 LOCK(BIT)、LOCK_EXPIRY(DATETIME) 并对其进行管理。我不知道,但我认为应该有另一种方法来锁定特定 session 的行。我在 Google 上搜索,发现了两种 InnoDB 锁定方法,但我不确定这些方法在这种情况下是否可以帮助我。
最佳答案
我建议您添加您所描述的两个字段,除了将 LOCK(BIT) 替换为 LOCKED_BY(AGENT_ID) 之外。否则,如果锁定客户列表的代理刷新他/她的页面,锁定的行可能会消失,直到锁定过期。
关于mysql - 如何锁定 MySQL 中的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5858467/