更新数据。

语法

update_statement ::=  UPDATE table_name
                      [ USING update_parameter ( AND update_parameter )* ]
                      SET assignment ( ',' assignment )*
                      WHERE where_clause
update_parameter ::=  ( integer | bind_marker )
assignment       ::=  simple_selection '=' term
                     | column_name '=' column_name ( '+' | '-' ) term
                     | column_name '=' list_literal '+' column_name
simple_selection ::=  column_name
                     | column_name '[' term ']'
                     | column_name '.' `field_name
condition        ::=  simple_selection operator term

说明

UPDATE语句为表中的指定行写一个或多个列。where_clause用于选择要更新的行,并且必须包括组成PRIMARY KEY的所有列。然后使用SET关键字设置非主键列。

与SQL不同,UPDATE默认情况下不检查该行的先前存在:如果该行之前不存在,则创建该行,否则进行更新。此外,没有办法知道是否发生了创建或更新。Lindorm CQL中的counter列允许与非counter共存,这点是lindorm CQL与Apache Cassandra CQL的一个区别。

在UPDATE语句中,同一分区键中的所有更新都是atomically以及isolation

关于assignment,c=c + 3用于递增/递减计数器。 “ =”符号后的列名称必须与“ =”符号前的列名称相同。请注意,递增/递减仅允许在计数器上进行,并且是计数器唯一允许的更新操作。

示例

CREATE TABLE product (productname text PRIMARY KEY, company text, subdepartment text)
UPDATE product 
   SET company   = 'aliyun cloud',
       subdepartment = 'database nosql'
 WHERE productname = 'lindorm';