## 方案一 : REPLACE INTO 根据表主键primary key或唯一索引unique进行插入数据,当主键和唯一索引有一个存在时,则会删除原来的旧数据,重新插入新数据(相当于更新). 有如下三种用法: REPLACE INTO `table_name` ( `col_name`, ...) VALUES( 'value', ... ); REPLACE INTO `table_name` ( `col_name`, ...) SELECT `col_name`, ... from table_name where ...; REPLACE INTO `table_name` SET col_name='value', ... ; ## 方案二:INSERT IGNORE INTO 根据表主键primary key或唯一索引unique进行插入数据,当主键和唯一索引有一个存在时忽略,执行后返回0,否则正常插入. INSERT IGNORE INTO `table_name` ( `col_name`, ...) VALUES( 'value', ... ); ## 方案三: ON DUPLICATE KEY 当表主键primary key或唯一索引unique出现重复时执行更新,否则插入.语法如下. INSERT INTO `table_name` ( `col_name`, ... ) VALUES( `value`, ... ) ON DUPLICATE KEY UPDATE `col_name` = 'value',...; ## 方案四: INSET IF NOT EXISTS 这种情况适合插入的数据字段没有primary key或唯一索引unique.语法如下. INSERT INTO `table_name` ( `col_name`, ... ) SELECT ( `col_name`, ... ) FROM `table_name` WHERE NOT EXISTS (SELECT `col_name` from `table_name` where ...); Loading... ## 方案一 : REPLACE INTO 根据表主键primary key或唯一索引unique进行插入数据,当主键和唯一索引有一个存在时,则会删除原来的旧数据,重新插入新数据(相当于更新). 有如下三种用法: REPLACE INTO `table_name` ( `col_name`, ...) VALUES( 'value', ... ); REPLACE INTO `table_name` ( `col_name`, ...) SELECT `col_name`, ... from table_name where ...; REPLACE INTO `table_name` SET col_name='value', ... ; ## 方案二:INSERT IGNORE INTO 根据表主键primary key或唯一索引unique进行插入数据,当主键和唯一索引有一个存在时忽略,执行后返回0,否则正常插入. INSERT IGNORE INTO `table_name` ( `col_name`, ...) VALUES( 'value', ... ); ## 方案三: ON DUPLICATE KEY 当表主键primary key或唯一索引unique出现重复时执行更新,否则插入.语法如下. INSERT INTO `table_name` ( `col_name`, ... ) VALUES( `value`, ... ) ON DUPLICATE KEY UPDATE `col_name` = 'value',...; ## 方案四: INSET IF NOT EXISTS 这种情况适合插入的数据字段没有primary key或唯一索引unique.语法如下. INSERT INTO `table_name` ( `col_name`, ... ) SELECT ( `col_name`, ... ) FROM `table_name` WHERE NOT EXISTS (SELECT `col_name` from `table_name` where ...); 最后修改:2023 年 11 月 10 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 1 如果觉得我的文章对你有用,请随意赞赏