簡體   English   中英

如何防止兩個不同查詢之間的表上的任何更改

[英]How to prevent any changes on table between two different queries

因此,可以說我的Rails應用程序中有幾個可以訪問數據庫的進程。 現在,在其中一個過程中,我想查詢一個表,然后立即重新查詢它。 我的問題是如何確保同一進程在兩次查詢之間沒有其他進程對表進行任何編輯? 交易會在這里幫助嗎? 我不這么認為。

好的,您有幾個選擇。 我對您的應用程序體系結構或所使用的數據庫了解不多。 根據所使用的數據庫(mysql,pgsql等),您可以進行表鎖定 各個數據庫之間的工作方式細節各不相同。 除了鎖定表之外,您還可以使用某種排隊系統(單擊活動作業延遲作業 ),該系統會將對表的所有寫入排隊,並且僅在當前寫入完成后才處理對該表的寫入。 這是一個真正的高級解釋,您需要考慮一些注意事項,例如:

  • 用戶或系統是否期望這些寫入是實時的
  • 延遲這些寫入會導致競爭狀況
  • 您是否有資源來集成排隊系統
  • 您當前的數據庫是否提供表鎖定

因此,這些是您研究的出發點,我想說的是,如果您只是要停止表編輯,則必須確保存儲所有可能在表處於鎖定狀態時發生的寫操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM