1.insert ignore into
会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据
INSERT IGNORE INTO 表名(字段名...) VALUES (值...)
2.on duplicate key update
replace into表示插入替换数据;如:表中有PRIMARY,或者UNIQUE索引的话,当表中已经存在这条数据,则用新数据替换,如果没有数据,效果则和insert into一样;
INSERT INTO 表名(字段名...) VALUES (值...) ON DUPLICATE KEY UPDATE 字段名= 值, 字段名 = 值...
3.insert … select … where not exist
根据select的条件判断是否插入,可以不光通过PRIMARY和UNIQUE来判断,也可通过其它条件。
INSERT INTO 表名(字段名...) SELECT 值.. FROM DUAL WHERE NOT EXISTS (SELECT * FROM 表名 WHERE 条件)
4.replace into
如果存在PRIMARY或UNIQUE相同的记录,则先删除掉。再插入新记录。
REPLACE INTO 表名(字段名...) VALUES(值...)
或者
REPLACE INTO 表名 SET 字段名 = 值...