2009-12-08 69 views
3

有沒有什麼辦法可以確保存儲過程在另一個實例啓動之前完全結束?單實例存儲過程調用

我必須在過程中做3件事情,如果兩個實例同時運行,它會弄亂邊界情況。

例子:count行,如果< X插入一行,返回計算ÿ

如果存儲過程的多個實例可以在同一時間,我可以晃過我的X終端上運行。機會很小,但它在那裏。我們使用

DB是MYSQL5,也琢磨MSSQL

回答

4

使用事務。之後檢查行數,如果超過,則回滾。

+0

我不明白這將如何解決我的問題。這是否也會讓現在兩者同時回滾的能力?我可能在這裏錯過了一些東西。 – Dilbert789 2009-12-08 19:48:29

0

您可以嘗試利用locking reads以允許併發性以確保您作爲單例運行。

注意:這將阻止所有其他呼叫,它們將連續執行。確保這是你之後的行爲。