MySQL -- -- ON DUPLICATE KEY UPDATE

tech2026-08-18  4

场景

往数据库插入一条数据,如果存在则更新,不存在则插入(必须现有唯一键) 如果数据库已经存在同一主键的记录,则执行update操作,如果不存在,则执行insert操作

INSERT … ON DUPLICATE KEY UPDATE命令

单条记录使用 INSERT INTO t1 (user_name,pass_word) VALUES ("user","pass") ON DUPLICATE KEY UPDATE user_name=VALUES(user_name); 多记录下使用 INSERT INTO t1 (user_name,pass_word) VALUES ("user","pass"),("user1","pass1") ON DUPLICATE KEY UPDATE user_name=VALUES(user_name);

MyBatis下使用

Mybatis作为经典的数据库持久层框架,自然要介绍下它下的使用

在mapper.xml里面配置如下: <insert id="insertOrUpdate"> INSERT INTO t1 (user_name, pass_word) values <foreach collection="list" item="item" separator=","> (#{item.userName},#{item.passWord}) </foreach> ON DUPLICATE KEY UPDATE user_name=values(user_name), pass_word=values(pass_word) </insert> 对应的mapper接口可以定义为: int insertOrUpdate(List<Test> list); class User{ private String userName; private String passWord; ... }
最新回复(0)