全部產品
Search
文件中心

PolarDB:FOR UPDATE 子句

更新時間:Jul 06, 2024

本文介紹FOR UPDATE子句。

文法

FOR UPDATE [WAIT n|NOWAIT|SKIP LOCKED]

說明

FOR UPDATE 會使 SELECT 語句所檢索的行被鎖定,就像在進行更新一樣。這可以防止其他事務在當前事務結束前修改或刪除行;任何嘗試 UPDATEDELETESELECT FOR UPDATE 選定行的事務都將被阻止,直到當前事務結束。如果來自另一個事務的 UPDATEDELETESELECT FOR UPDATE 鎖定一個或多個選定行,則 SELECT FOR UPDATE 將等待第一個事務完成,然後鎖定並返回更新的行(如果行已刪除,則不返回任何行)。

FOR UPDATE 不能用於無法使用單個錶行(例如,使用彙總)明確標識返回行的上下文中。

使用 FOR UPDATE 選項可以指定鎖定喜好設定:

  • 包含 WAIT n 關鍵字可指定 SELECT 語句將等待另一個會話鎖定的行的秒數(或秒的小數部分)。使用小數形式指定秒的小數部分;例如,WAIT 1.5 指示伺服器等待 1.5 秒。最多指定小數點右邊的 4 位元。
  • 包含 NOWAIT 關鍵字可在當前會話無法鎖定行時立即報告錯誤。
  • 包含 SKIP LOCKED 指示伺服器在可能的情況下鎖定行,並跳過已被另一個會話鎖定的行。