mysql 存在该记录则更新,不存在则插入记录的sql

INSERT test(id, name) values (1, ‘hello‘) ON DUPLICATE KEY UPDATE name=‘baby‘;

原始数据:

运行后数据:

如果您指定了ON
DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE。

如果行作为新记录被插入,则受影响行的值为1;如果原有的记录被更新,则受影响行的值为2。

时间: 2024-12-15 06:57:58

mysql 存在该记录则更新,不存在则插入记录的sql的相关文章

sql mysql和sqlserver存在就更新,不存在就插入的写法(转)

转自:http://hi.baidu.com/tidy0608/item/ff930fe2436f2601560f1dd9 sqlsever数据存在就更新,不存在就插入的两种方法 两种经常使用的方法: 1. Update, if @@ROWCOUNT = 0 then insert UPDATETable1 SETColumn1 = @newValue WHEREId = @id [email protected]@ROWCOUNT= 0 BEGIN INSERT INTOTable1 (Id,

MyBatis 插入时返回刚插入记录的主键值

MyBatis 插入时返回刚插入记录的主键值 一.要求: 1.数据库表中的主键是自增长的,如:id: 2.获取刚刚插入的记录的id值: 二.源代码: 1.User.java 1 package cn.com.zfc.model; 2 3 public class User { 4 5 private Integer id; 6 private String name; 7 private String password; 8 9 public Integer getId() { 10 retur

MySQL 记录不存在时插入 记录存在则更新的实现方法

INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1; INSERT 中 ON DUPLICATE KEY UPDATE的使用  如果指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE.例如,如果列a被定义为UNIQUE,并且包含值1,则以下两个语句具有相同的效果:mysql> INSERT INTO ta

mysql妙用:批量插入记录,遇到重复记录则为自动更新

在更新大量数据时可能同时遇到两个问题: 如果每条更新执行一次sql性能很低,也容易造成阻塞: 批量更新时又有可能遇到主键重复的问题 使用 ON DUPLICATE KEY UPDATE 一条sql解决批量更新和主键重复问题(id为主键) INSERT INTO mytable(id,pid,ele,anim)  VALUES (?,?,?,?),(?,?,?,?),(?,?,?,?) ON DUPLICATE KEY UPDATE pid=VALUES(pid),ele=VALUES(ele)

黄聪:mysql 存在该记录则更新,不存在则插入记录的sql

一条mysql教程 存在该记录则更新,不存在则插入记录的sql INSERT table (auto_id, auto_name) values (1, ‘yourname') ON DUPLICATE KEY UPDATE auto_name='yourname' ON DUPLICATE KEY UPDATE的使用 如果您指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则执行旧行UPDATE.例如,如果列a被

mysql进阶 十四 批量更新与批量更新多条记录的不同值实现方法

mysql 批量更新与批量更新多条记录的不同值实现方法 在mysql中批量更新我们可能使用update,replace into来操作,下面详细介绍mysql批量更新与性能. 批量更新 mysql更新语句很简单,更新一条数据的某个字段,一般这样写: UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value'; 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: UPDATE mytable SE

MyBatis应用开发(21)用update结点表达数据库记录的更新

1.1. update 使用update语句进行记录的更新. Maper配置: <!-- updatePerson:更新记录 --> <update id="updatePerson" parameterType="com.test.mybatis3.pojo.Person"> update t_person set name=#{name},status=#{status} where id=#{id} </update> Ma

MySQL的timestamp类型自动更新问题

今天建了一个表,里面有一个列是timestamp类型,我本意是在数据更新时,这个字段的时间能自动更新.岂知对这个类型的值还不甚了解,导致出错.发现这个字段只是在这行数据建立的时候有值,在更新的却无变化. 查找资料,发现是我建表的语句有问题: 以下是代码片段: CREATE TABLE `test` ( `t1` timestamp NOT NULL default CURRENT_TIMESTAMP, `ww` varchar(5) NOT NULL ) ENGINE=InnoDB DEFAUL

mysql防止重复插入记录方法总结

防止mysql重复插入记录的方法有很多种,常用的是ignore,Replace,ON DUPLICATE KEY UPDATE,当然我们也可以在php中加以判断了. 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用: 代码如下:  代码如下 复制代码  INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('[email protec