簡體   English   中英

如何在MySQL InnoDB表中的行上放置長期鎖定?

[英]How to put a long-term lock on a row in a MySQL InnoDB Table?

我已經搜索了一段時間,但找不到很多。

是否可以在MySQL中的InnoDB表上手動鎖定各個行?

基本上,我們有一個表,其中處理了一些記錄,不應再對其進行編輯。 它們需要保持當前狀態,但就讀取數據而言仍很容易訪問。

我們已經有一個“鎖定”列,該列為0或1,但不知何故 ,當它不應該被編輯時。 我們不是要依靠代碼來表現良好,而是要在MySQL級別對其進行硬鎖定,因此即使我們的PHP代碼嘗試到某個地方, 也不能更改這些代碼。

這可能嗎?

沒有。

若要正確執行此操作,請使用應用程序分區,以便您的應用程序將活動數據存儲在一個表中,並將歷史數據存儲在另一個表中,並使用權限指定您的應用程序可以讀取一個表並可以在另一個表上進行讀/寫。

或者,添加訪問層,以便您可以瀏覽視圖並寫入存儲過程,並讓SP控制是否可以基於字段值寫入行。

無論哪種方式,如果沒有在某處編寫一些代碼,就無法使用MySQL本機執行此操作

暫無
暫無

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

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