本文介绍如何使用REPLACE INTO语句。

语法

REPLACE INTO用于实时覆盖写入数据。写入数据时,会先根据主键判断待写入的数据是否已经存在于表中,并根据判断结果选择不同的方式写入数据:
  • 如果待写入数据已经存在,则先删除该行数据,然后插入新的数据。
  • 如果待写入数据不存在,则直接插入新数据。
说明 本文所指的主键既包括单个列的主键,也包括由多列组成的复合主键(Composite Primary Key)。

语法如下:

REPLACE INTO table_name [(column_name,...)] VALUES ({常量|NULL|DEFAULT},...),(...),...      

示例

  • 通过REPLACE INTO向CUSTOMER表中插入一条数据。
    REPLACE INTO customer(customer_id,customer_name,phone_num,city_name,sex,id_number,home_address,office_address,age,login_time) 
    values
    (002367,'Bob','13900001234','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00');                
  • 向CUSTOMER表中插入多条数据时,可以省略列名。
    REPLACE INTO 
    customer values
    (002367,'John','13900001111','Hangzhou',0,'987300','WestLake','CloudTown',23,'2018-03-02 10:00:00'),(002368,'Adam','13900002222','Hangzhou',0,'987300','WestLake','CloudTown',28,'2018-08-01 11:00:00'),(002369,'Brook','13900003333','Hangzhou',1,'987300','WestLake','CloudTown',35,'2018-09-12 08:11:00');