UPDATE语句用来更新表的行记录。

简单的UPDATE语句语法格式如下:

  1. UPDATE table_name
  2. SET column_name = value [, column_name = value]...
  3. [ WHERE condition ];

其中,column_name 是要更新的列,等号后面的 value 是要更新的目标值,必须符合列的类型定义。WHERE 条件子句指定要更新的行记录必须满足的条件,没有 WHERE 条件子句就是更新表对应列的所有记录。

示例:更新所有记录

  1. obclient> update t_insert set value=value+1 ;
  2. Query OK, 3 rows affected (0.01 sec)
  3. Rows matched: 3 Changed: 3 Warnings: 0

不带条件更新的时候,如果记录数达到几十万或者几百万,会有大事务产生,可能会失败。所以 UPDATE 要注意控制事务不要太大。

示例:更新部分记录,违反约束报错

  1. obclient> create unique index uk_name on t_insert(name);
  2. Query OK, 0 rows affected (1.99 sec)
  3. obclient> update t_insert set name='US' where id=3;
  4. ERROR-00001: unique constraint 'US' for key 'UK_NAME' violated