【问题标题】:Single Instance Stored Procedure call单实例存储过程调用
【发布时间】:2009-12-08 18:58:35
【问题描述】:

有什么方法可以确保存储过程在另一个实例启动之前完全完成?

我必须在过程中做 3 件事,如果两个实例同时运行,它会弄乱边界情况。

例子:计算行数,如果

如果存储过程的多个实例可以同时运行,我可以超越我的 X 目标。机会很小,但它就在那里。

我们使用的数据库是 MYSQL5,但也想知道 MSSQL

【问题讨论】:

    标签: sql mysql database stored-procedures


    【解决方案1】:

    使用事务。之后检查行数,如果超过就回滚。

    【讨论】:

    • 我不明白这将如何解决我的问题。这不也让现在两者都可以同时回滚吗?我可能在这里遗漏了一些东西。
    【解决方案2】:

    您可以尝试利用locking reads 来允许并发以确保您作为单例运行。

    注意:这将阻止所有其他调用,它们将连续执行。确保这是您所追求的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      • 2011-02-06
      • 2012-05-15
      • 1970-01-01
      相关资源
      最近更新 更多