首批通过分布式安全可靠测评,为关键业务系统打造
REPLACE
更新时间:2026-06-17 20:51:11
描述
该语句用于替换表中的一个或多个记录。如果没有主键或唯一键冲突则插入记录,如果存在冲突则先删除冲突记录再插入新的记录。
语法
REPLACE [INTO] table_factor [PARTITION (partition_name_list)] [(column_name_list)]
{VALUES | VALUE} column_value_lists
partition_name_list:
partition_name [, partition_name ...]
column_name_list:
column_name [, column_name ...]
column_value_lists:
(column_value_list) [, (column_value_list) ...]
column_value_list:
column_value [, column_value ...]
column_value:
{expression | DEFAULT}
参数解释
| 参数 | 描述 |
|---|---|
| table_factor | 替换的表名。 |
| column_name_list | 指定替换数据的列。 |
| partition_name_list | 替换表指定的分区名。 |
示例
本示例基于如下表定义。
obclient> CREATE TABLE product_info (product_id INT PRIMARY KEY, product_name VARCHAR(40));
替换
product_info表中的两条记录。obclient> REPLACE INTO product_info VALUES (1, 'Product A'),(2, 'Product B');查看
product_info表中的内容。obclient> SELECT * FROM product_info;查询结果如下:
+------------+-------------+ | product_id | product_name| +------------+-------------+ | 1 | Product A | | 2 | Product B | +------------+-------------+ 2 rows in set替换表
product_info中的记录,其中product_id=2的记录已存在,会被替换。obclient> REPLACE INTO product_info VALUES (3, 'Product C'),(2, 'Product B Updated');查看
product_info表中的内容。obclient> SELECT * FROM product_info;查询结果如下:
+------------+------------------+ | product_id | product_name | +------------+------------------+ | 1 | Product A | | 2 | Product B Updated| | 3 | Product C | +------------+------------------+ 3 rows in set