replace into 首先判断数据是否存在;如果不存在,则插入;如果已存在则更新(先删除再插入)。
注意:
1 是根据主键或唯一索引判断记录是否已存在,所以插入数据的表必须有主键或者是唯一索引!否则的话,replace into 会直接插入数据(相当于insert),会导致表中出现重复数据。
2 如果不写某个字段值则会使用默认值,如果没有默认值则报错。
3 要使用replace into,必须同时拥有表的insert
和 delete权限。
MySQL replace into 有三种形式:
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, ...
alter table t_user change id id int(11) not null AUTO_INCREMENT; -- 修改主键为自增
-- 修改后的DDL
CREATE TABLE `t_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(40) NOT NULL,
`password` varchar(40) NOT NULL,
`sex` varchar(4) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY