方案一 : 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 日
如果觉得我的文章对你有用,请随意赞赏