插入数据的表必须有主键或者是唯一索引!否则 replace into、insert ignore into、insert into 会直接插入数据,这将导致表中出现重复的数据。
-- replace into
-- replace into 跟 insert 功能类似,不同点在于:
1. replace into 首先尝试插入数据到表中,如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据;
2. 否则没有此行数据的话,直接插入新数据。
-- insert into
1. insert into 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则会报"Duplicate entry 'xxx-yyy' for key 'PRIMARY'"错误;
2. 否则没有此行数据的话,直接插入新数据。
-- insert ignore into
1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则跳过此查询,不对数据库作任何操作;
2. 否则没有此行数据的话,直接插入新数据。