MySQL特殊语法---replace into
replace into语句
MySQL中有这样的SQL语句
1. replace into tbl_name(col_name, ...) values(...) 2. replace into tbl_name(col_name, ...) select ... 3. replace into tbl_name set col_name=value, ...
MySQL的replace into语句有三种语法,前两种形式用的多些。其中 “into” 关键字可以省略,但最好加上 “into”,这样意思更加直观。另外,对于那些没有给予值的列,MySQL 将自动为这些列赋上默认值。
replace into 跟 insert 功能类似,不同点在于:replace into 首先尝试插入数据到表中:
- 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据。
- 否则,直接插入新数据。
例:
replace into t(id, update_time) values(1, now()); // 或 replace into t(id, update_time) select 1, now();
以上语句等价于SQL Server中这样的语句:
if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1
insert into **** on duplicate key update *** 语句
http://lib.csdn.net/article/mysql/5307