REPLACE

说明

REPLACE 语句用于插入数据到表中。如果指定的主键或唯一索引已经存在,REPLACE 会先删除旧记录,然后插入新记录。

语法

replace ::=

column_list ::=

values_list ::=

参数

table_name

一个现有的表或视图。

partition_clause

subpartition_clause

可选部分,用于指定分区或子分区。

DEFAULT VALUES

表示插入该表的所有列都使用默认值。

column_list

可选部分,指定要插入的列名。

column

列名,可以列出一个或多个列,以逗号分隔。

values_list

使用 VALUES 关键字,后跟一个或多个值的元组

select_stmt

一个SELECT语句,其结果将被插入到表table_name中。关于SELECT语句,其参见 SELECT

示例

CREATE TABLE T1 (A INT PRIMARY KEY, B INT);

REPLACE INTO T1 VALUES (1,1);

SELECT * FROM T1;--与原表中的数据没有冲突,直接插入新数据
A(int)      |B(int)      |
------------------------
1           |1           |
总数目:1

REPLACE INTO T1 VALUES (1,2);

SELECT * FROM T1;--新插入的数据有主键冲突,删除旧数据(1,1)后插入新数据(1,2)
A(int)      |B(int)      |
------------------------
1           |2           |
总数目:1