全部產品
Search
文件中心

PolarDB:UPDATE

更新時間:Jul 06, 2024

您可以使用UPDATE文法修改表中合格行。

文法

  • 單邏輯表
    UPDATE [LOW_PRIORITY] [IGNORE] [schema_name.]tbl_name
        SET assignment_list
        [WHERE where_condition]
    
    value:
        {expr | DEFAULT}
    
    assignment:
        col_name = value
    
    assignment_list:
        assignment [, assignment] ...
  • 多邏輯表
    UPDATE [LOW_PRIORITY] [IGNORE] table_references
        SET assignment_list
        [WHERE where_condition]     
說明
  • UPDATE支援如下修飾符:
    • 若設定LOW_PRIORITY,UPDATE操作將在該表沒有任何讀操作之後執行。
    • 若設定IGNORE,將會忽略更新過程中的錯誤,即更新不會被錯誤中斷。
  • UPDATE語句中的修飾符均會原樣下推至儲存層MySQL,不會對PolarDB-X 1.0的修飾符操作產生影響。

文法限制

與原生MySQL的UPDATE文法相比,PolarDB-X 1.0的UPDATE文法存在以下限制。

  • 不支援在SET子句中使用子查詢(相互關聯的子查詢和非相互關聯的子查詢),例如:
    UPDATE t1 SET name = (SELECT name FROM t2 WHERE t2.id = t1.id) WHERE id > 10;
  • 預設禁止更新行數超過10000的不可下推的UPDATE,需要通過HINT開啟限制,例如:
    UPDATE t1 SET t1.name = "abc" ORDER BY name LIMIT 10001;
    UPDATE t1, t2 SET t1.name = t2.name WHERE t1.id = t2.name LIMIT 10001;  
    說明 t1和t2的拆分鍵為ID。

相關文獻

MySQL UPDATE文法。