REPLACE SELECT FROM用于将其他表中的数据实时覆盖写入目标表中。写入数据时,根据主键判断待写入的数据是否已经存在于表中,如果已经存在,则先删除该行数据,然后插入新的数据;如果不存在,则直接插入新数据。

语法

REPLACE INTO table_name 
[(column_name,...)]
query;    

参数

  • query:可以是SELECT FROM TABLE或者SELECT FROM VIEW
  • column_name:列名,如果需要将源表中的部分列数据插入到目标表中,SELECT子句中的列必须与REPLACE子句中列的顺序、数据类型一致。

注意事项

执行REPLACE SELECT FROM命令时,需先创建待写入数据的目标表。

示例

以指定列名的方式,从CUSTOMER表中复制某几列数据到NEW_CUSTOMER表中。

REPLACE INTO new_customer (customer_id, customer_name, phone_num)
  SELECT customer_id, customer_name, phone_num FROM customer
  WHERE customer.customer_name = '杨过';