現在我的card表裡的count為8 表示有8張卡 如果我有10個併發執行緒去呼叫 最後的結果是card表count為0 但是mycard表 會有10條記錄
就是10個人搶8張卡 結果10個人都搶到了
declare update_count int;
declare tmp_update_count int default 0;
declare t_error integer default 0;
declare temp int;
declare continue handler for sqlexception set t_error = 1;
start transaction;
update card set count = count-1 where count >= 1 and cardid = cardid;
select row_count() into update_count;
select sleep(1) into temp;
if update_count > 0 then
select row_count() into tmp_update_count;
end if;
if t_error = 1 then
set tmp_update_count = 0;
rollback;
else
commit;
end if
select tmp_update_count as update_count;
Outlook裡面的 dbx檔案怎麼開啟啊
太傻超級論壇 數碼生活 dbx檔案怎麼開啟啊,請教各位了!2004 6 2 16 30zmd100 dbx檔案怎麼開啟啊,請教各位了!dbx檔案怎麼開啟啊,請教各位了!2004 6 2 18 50chinesebai 是不是outlook express的資料檔案呀 開啟幹什麼用?好象只能轉換吧 2...
儲存過程裡面使用in變數列表異常的處理
在寫乙個儲存過程的時候,由於需要用到類似 select id,name from tablename where id in id1,id2,id3.的查詢語句,同時括號裡面的變數是拼接得到的,當時沒有多想,直接將儲存過程寫成類似select id,name from tablename where...
怎麼處理高併發
處理高併發有六種方法 1 系統拆分,將乙個系統拆分為多個子系統,用dubbo來搞。然後每個系統連乙個資料庫,這樣本來就乙個庫,現在多個資料庫,這樣就可以抗高併發。2 快取,必須得用快取。大部分的高併發場景,都是讀多寫少,那你完全可以在資料庫和快取裡都寫乙份,然後讀的時候大量走快取不就得了。畢竟人家r...