replace是insert的增强版
replace into 首先尝试插入数据到表中,
- 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
- 否则,直接插入新数据
几乎和insert一样的用法,区别在插入字段中必须要有唯一字段比如主键,索引
例子
replace into tabname(id, name, createtime) values (1, 'name', '2020-08-18');
Select 查询结果作为值传递给Insert
replace into tabname(id, name, createtime)
select(
select id
FROM tabname
WHERE
createdate = '2022-02-01')id,
'test','2022-08-18;