mysql关于REPLACE使用说明
IGNORE INTO
有则忽略(判断的是主键值是否存在),无则插入。
示例:
INSERT IGNORE INTO user (id,user_name,is_test) VALUES ('1112','test1',0)
INSERT IGNORE user (id,user_name,is_test) VALUES ('1112','test1',0)
REPLACE INTO
有则删除再插入,无则插入。
示例:
REPLACE user (id,user_name) VALUES ('1113','test3')
REPLACE INTO user (id,user_name) VALUES ('1113','test3')
ON DUPLIACATE KEY UPDATE
有则更新,无则插入。单个增加、更新及批量增加、更新的SQL。如果主键数据不存在则执行ON DUPLICATE KEY之前的SQL,否则执行ON DUPLICATE KEY后面的UPDATE SQL,UPDATE WHERE条件为INSERT主键值。
示例:
INSERT INTO user (id,user_name,is_test) VALUES ('1114','test4',0) ON DUPLICATE KEY UPDATE is_test=1
等同于:
UPDATE user SET is_test=1 WHERE id='1114'
INSERT INTO user (id,user_name,is_test) VALUES ('1115','test5',0),('1116','test6',1) ON DUPLICATE KEY UPDATE user_name='test55'