2011-11-25 103 views
2

我正在開發一個醫院管理系統,就像你知道的是一個龐大的系統,要弄清楚事情,接待處會爲患者開一張新票票號不會是一個定製的表格,每月不會(112011000101 ),這意味着沒有票101上月月在2011年MySQL多用戶交易

在保存票,我的應用程序將讀取上次保存的票沒有&增加沒有一個,(從門票那裏Tick_No像「112011」%選擇Tick_No按Tick_No DESC限制1),這將返回最後一個保存的票(112011000101)增加一個==>新票將是(112011000102)。

因此,如果有兩名員工在同一個地方保存一張新票,是否有機會獲得重複票?

我正在使用mysql數據庫的事務處理,它將進行行級別鎖定,但仍然可用於任何查詢。

所以我需要一個明確的答案,如果有可能。

請注意在我的代碼中,如果出現問題時保存,將發出回滾併發出自動重試保存功能(在每個保存命令中,應用程序將執行檢查最後一個數字)。

回答

0

在這種情況下,您應該進行表級鎖定,以便您可以使用MyISAM表引擎。這應該有幫助http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html

+0

我知道,但我需要關係數據庫,鎖定表將殺死使用事務的好處。 –

+0

如何在最後一張票上執行「SELECT ... FOR UPDATE」,然後添加新行?通過這種方式,一次在線的一個用戶可以使用最後一個號碼來創建一個新號碼。 – Dragos

+0

好吧,讓我們來簡化一下,我想知道在使用交易時,如果票號相同的票證插入到票據表中,mysql會回滾其中的一個,對吧?至少還會有一個人會被評論?答案是肯定的? –