您可以使用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文法。