這也是網(wǎng)上看到的,感覺解決方法不錯。
這是一個很有代表性的問題,在C/S結(jié)構(gòu)的數(shù)據(jù)庫應(yīng)用程序中經(jīng)常碰到,如果這種問題
不能很好地解決,可能造成系統(tǒng)速度緩慢、死鎖甚至崩潰。我們在開發(fā)的過程中多次碰到了
這樣的問題。有些辣手,但還是沖過去了。
? ? 解決這種問題應(yīng)該本著兩個原則:
? ? 1、要建立PRIMARY KEY;
? ? 2、事務(wù)開啟到提交之間的時間要盡可能地短。
? ? 我們處理的時候用到了兩種方法:
? ? 1、建立一個專門的表,用來存放最大值。每次建立新單據(jù)的時候,提取該值并加1,
然后再寫回。這是一種靜態(tài)的處理方法。
? ? 2、在單據(jù)完成并提交數(shù)據(jù)時,讀取編號并加1,開啟事務(wù),提交事務(wù)。這個時間非常
短,一般不會出現(xiàn)編號重復(fù),即使出現(xiàn)重復(fù),數(shù)據(jù)回滾,可以重新提交。這是一種動態(tài)的
處理方法。