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 = '杨过';