我通過Java中的多個線程連接到mysql數據庫。有時,線程正在讀取和更新數據庫表的同一列,以便出現某些不一致性。 在Java中有一個關鍵字,它限制了對一個資源的訪問。 mysql數據庫有沒有可能的限制?爲什麼這些不一致不會發生?mysql確保一次只有一個訪問
0
A
回答
2
您應該使用具有適當隔離級別的事務。
簡化的例子:
BEGIN TRANSACTION
...
COMMIT
Mysql docs about transactions
Mysql docs about isolation levels。
0
嘗試使用版本列,這樣您可以知道在您處理數據時是否有人與您的數據混淆。
含義:添加一個名爲「updated」的類型爲datetime的列,並且每當更新時檢查獲得的更新是否與db中行上的更新相同,如果他們不是你知道有人在你的記錄上工作過。
相關問題
- 1. 確保只有一個類可以訪問參考DLL?
- 2. 確保只有經過一次
- 3. 一次只能有一個CPU訪問RAM?
- 4. OSGi有沒有辦法確保一次只有一件事物可以訪問服務?
- 5. 如何確保訪問一個servlet?
- 6. 如何確保我只打印一次?
- 7. 確保委託只執行一次
- 8. asp.net確保JavaScript只加載一次
- 9. 確保NHibernate SessionFactory只創建一次
- 10. 如何確保JavaScript只加載一次
- 11. 使用jquery確保一次只能摺疊一個選項卡
- 12. 如何確保一個窗口只在Cocoa中顯示一次?
- 13. 確保一次只能運行一個進程
- 14. 確保一個變量只設置一次
- 15. 如何確保一次只打開一個WPF窗口?
- 16. 如何確保一次腳本只運行一次
- 17. 如何確保一次活動只訂閱一次
- 18. 如何讓一個MySQL用戶只訪問一個模式
- 19. 找到一次只訪問一個有向圖的所有頂點的路徑
- 20. 訪問只有一個存活對象
- 21. 只有一個條目的NSDictionary訪問
- 22. CurrentApp.LicenseInformation只讓我訪問過一次
- 23. PHP - 允許用戶只訪問一次
- 24. Laravel(雄辯)訪問:只計算一次
- 25. 如何確保我只有一個遞歸setTimeouts鏈一次運行?
- 26. 如何確保一次只有一個rake任務正在運行?
- 27. 節點集羣:確保一次只有一個函數實例正在運行
- 28. 每個唯一訪問者只提供一次功能
- 29. 在2D數組中一次只能訪問一個字符
- 30. MySQL - 獲得最近的用戶訪問。只顯示一次
交易僅在Innodb上可用,對於MyIsam他必須使用表鎖:http://dev.mysql.com/doc/refman/5.0/fr/lock-tables.html – regilero 2011-06-15 06:38:27
我已經在使用存儲過程,他們不他們procide相同的功能?此外,如果我有10個事務或表鎖,它們是否提供數據一致性?事務/鎖將由不同的線程單獨執行。 – Vilius 2011-06-15 06:54:39