存盤程序使用的基表名稱:table1,資料量比較大;需要傳入的引數為UserID,其目的是搶占table1中的最小BH欄位的值。
我寫的存盤程序思路如下:
1、鎖定基表table1
LOCK TABLE table1 IN EXCLUSIVE MODE;
2、先判斷當前UserID是否有未使用的資料,GetScore=-1時表示未使用
SELECT COUNT(*) INTO @RowCount FROM table1 WHERE UserID=pUserID AND GetScore=-1;
3、如果沒有未使用的資料,則讓當前用戶馬上在table1中搶占一條資料
IF @RowCount =0 THEN
SELECT MIN(BH) INTO @BH FROM table1 WHERE 條件
UPDATE table1 SET UserID=pUserID WHERE BH=@BH
END IF
4、提交
COMMIT
程式在很多地方都要使用到table1 ,感覺這樣寫,效率肯定不高,希望朋友們能幫忙給優化一下,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/284508.html
標籤:基礎類
下一篇:轉行軟體測驗