【发布时间】:2009-12-08 18:58:35
【问题描述】:
有什么方法可以确保存储过程在另一个实例启动之前完全完成?
我必须在过程中做 3 件事,如果两个实例同时运行,它会弄乱边界情况。
例子:计算行数,如果 如果存储过程的多个实例可以同时运行,我可以超越我的 X 目标。机会很小,但它就在那里。 我们使用的数据库是 MYSQL5,但也想知道 MSSQL
【问题讨论】:
标签: sql mysql database stored-procedures
有什么方法可以确保存储过程在另一个实例启动之前完全完成?
我必须在过程中做 3 件事,如果两个实例同时运行,它会弄乱边界情况。
例子:计算行数,如果 如果存储过程的多个实例可以同时运行,我可以超越我的 X 目标。机会很小,但它就在那里。 我们使用的数据库是 MYSQL5,但也想知道 MSSQL
【问题讨论】:
标签: sql mysql database stored-procedures
使用事务。之后检查行数,如果超过就回滚。
【讨论】:
您可以尝试利用locking reads 来允许并发以确保您作为单例运行。
注意:这将阻止所有其他调用,它们将连续执行。确保这是您所追求的行为。
【讨论】: