
# UPDATE
- 【规格】在GTM-FREE模式下，不允许跨节点事务，因此更新HASH分布中数据表时WHERE条件中必须指定分布列等值过滤条件。
- 【规则】UPDATE语句中必须有WHERE子句，避免全表扫描。
- 【规则】不允许在UPDATE子句同时更新多个列时，被更新列同样是更新源。 同时更新多列，且更新源相同，在不同的数据库下行为不同，为了避免带来兼容性问题，业务层应避免上述操作。例如：
  ```
  UPDATE table SET col1 = col2, col3 = col1 WHERE col1 = 1;
  ```
  该语句在中，col3的值为原col1的值；而MySQL中，col3的值为col2的值（因为col2的值被赋予给了col1）。
  
- 【规则】UPDATE语句中禁止使用ORDER BY、GROUP BY子句，避免不必要的排序。
- 【建议】有主键/索引的表，更新时WHERE条件应结合主键/索引。
 
