§ UPDATE 更新数据


本节介绍使用 UPDATE 命令向GreatSQL数据库更新数据。

§ 使用 UPDATE 语句

使用 UPDATE 语句更新数据。语法如下

UPDATE table_name
SET column1=value1, column2=value2,, column=valuen
[WHERE condition]
1
2
3

举例将所有行中的age字段更新为10:

greatsql> UPDATE test SET age=10;
1

注意!此SQL会将所有行中的age字段更新为10。请使用 WHERE 语句来指定需要更新的数据。

§ 指定需要更新的数据

使用 WHERE 子句指定需要更新的数据 举例更新id为2的行中的age字段:

greatsql> UPDATE test SET age=10 WHERE id=2;
1

此SQL只会更新id为2的行中的age字段。

§ 更新多个字段

可以在 SET 语句后指定多个字段。 举例id为2的行中的age字段更新为10,name字段更新为GreatSQL:

greatsql> UPDATE test SET age=10, name='GreatSQL' WHERE id=2;
1

此SQL会将id为2的行中的age字段更新为10,name字段更新为GreatSQL。

§ 使用 ON DUPLICATE KEY UPDATE 子句

当使用 INSERT 语句插入数据时,如果数据表中存在相同的主键,则会报错。可以使用 ON DUPLICATE KEY UPDATE 语句将插入数据转变为更新数据的语句来更新相关字段。 语法如下:

INSERT INTO table (column1, column2,) VALUES (value1, value2,) ON DUPLICATE KEY UPDATE column1=value1, column2=value2,;
1

举例:

greatsql> INSERT INTO test (id, name) VALUES (1, 'GreatSQL') ON DUPLICATE KEY UPDATE name='GreatSQL';
1

示例中,若id为1的数据不存在,则会插入一行数据。如果id为1的数据存在,则会更新name字段为GreatSQL。

greatsql-wx