`

INSERT ... ON DUPLICATE KEY UPDATE

 
阅读更多

该语句是基于唯一索引或主键使用,比如一个字段a被加上了unique index,并且表中已经存在了一条记录值为1,下面两个语句会有相同的效果:

 

INSERT INTO table (a,b,c) VALUES (1,2,3)

  ON DUPLICATE KEY UPDATE c=c+1;

 

 

UPDATE table SET c=c+1 WHERE a=1;

 

 

ON DUPLICATE KEY UPDATE后面可以放多个字段,用英文逗号分割。使用ON DUPLICATE KEY UPDATE,最终如果插入了一个新行,则受影响的行数是1,如果修改了已存在的一行数据,则受影响的行数是2,如果值不变,则受影响行数是0。

分享到:
评论

相关推荐

    mysql数据库Insert语句后面加ON DUPLICATE KEY UPDATE,保证唯一性1

    当你在`INSERT`语句后添加`ON DUPLICATE KEY UPDATE`,如果新插入的行违反了唯一性约束,MySQL将执行指定的`UPDATE`操作。这里的“唯一性”指的是任何具有唯一索引或主键的列。例如,如果你有一个名为`consume_locus...

    INSERT INTO .. ON DUPLICATE KEY更新多行记录

    ON DUPLICATE KEY UPDATE` 是 MySQL 数据库中的一种高效操作,它结合了插入新记录和更新已有记录的功能。这个语句主要用于处理唯一性约束冲突,如 PRIMARY KEY 或 UNIQUE 索引的情况。当试图插入的记录与现有记录在...

    mysql如何实现 如果存在就update更新,不存在再insert插入.zip

    在MySQL数据库中,如果你需要执行一个操作,即当数据存在时进行更新,如果不存在则进行插入,你可以使用`INSERT INTO...ON DUPLICATE KEY UPDATE`语句。这个功能强大的语句结合了`INSERT`和`UPDATE`操作,允许你在...

    MYSQL的REPLACE和ON DUPLICATE KEY UPDATE语句介绍解决问题实例

    ON DUPLICATE KEY UPDATE`这两种语句。这两种SQL语句可以帮助我们高效地处理数据冲突,避免繁琐的循环操作,提高数据库操作的效率。 首先,我们来看`REPLACE`语句。`REPLACE`类似于`INSERT`,但它会在检测到主键或...

    MySQL的Replace into 与Insert into on duplicate key update真正的不同之处

    - 示例中,当再次尝试`INSERT`一个`a=3`的记录时,由于`b`字段在`ON DUPLICATE KEY UPDATE`部分被指定更新为'r5',所以原有记录的`b`字段被更新,而`c`字段保持不变。 - 对于`AUTO_INCREMENT`字段,`INSERT INTO ....

    Mysql中Insert into xxx on duplicate key update问题

    INSERT INTO table(a, b, c) VALUES (1, 2, 3) ON DUPLICATE KEY UPDATE c = c + 1; UPDATE table SET c = c + 1 WHERE a = 1; ``` 当尝试插入的记录 `(1, 2, 3)` 中的 `a` 值已存在于表中时,`ON DUPLICATE KEY ...

    mysql 中 replace into 与 insert into on duplicate key update 的用法和不同点实例分析

    在MySQL中,`REPLACE INTO` 和 `INSERT INTO ON DUPLICATE KEY UPDATE` 是两种处理数据插入时冲突的方法,主要用于处理当试图插入一条记录时,若已有相同唯一键值的记录存在,应该如何操作的情况。 1. **REPLACE ...

    mysql insert的几点操作(DELAYED,IGNORE,ON DUPLICATE KEY UPDATE )

    然而,`DELAYED`不适用于`INSERT...SELECT`和`INSERT...ON DUPLICATE KEY UPDATE`语句,且在主从复制环境中被忽略,因为它可能导致主从数据不一致。 2. **IGNORE**: `IGNORE`是MySQL的一个非标准扩展,它用于处理...

    [mysql]mysql通过on duplicate key update实现批量插入或更新(csdn)————程.pdf

    在MySQL数据库中,`ON DUPLICATE KEY UPDATE` 是一个非常实用的特性,它允许你在执行INSERT语句时,如果插入的数据违反了唯一性约束(即存在相同的唯一索引),则自动执行UPDATE操作来更新已有记录。这个功能在处理...

    mysql ON DUPLICATE KEY UPDATE语句示例

    INSERT INTO ipstats VALUES('192.168.0.1', 1) ON DUPLICATE KEY UPDATE clicks=clicks+1; ``` 这将自动检测到`ip`列的唯一性约束,如果IP已存在,就更新`clicks`列,增加1次点击。 总结一下`ON DUPLICATE KEY ...

    insert into … on duplicate key update / replace into 多行数据介绍

    ON DUPLICATE KEY UPDATE` 和 `REPLACE INTO`。这两种方法都可以实现“合并”操作,即在保持唯一键约束的同时,对重复的数据进行更新。 首先,我们来看一下`INSERT INTO ... ON DUPLICATE KEY UPDATE` 语句。这个...

    深入mysql ON DUPLICATE KEY UPDATE 语法的分析

    mysql “ON DUPLICATE KEY UPDATE” 语法如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE;如果不会导致唯一值列...

    MySQL中如何处理重复数据(Duplicate)?

    INSERT INTO table_name (col1, col2, col3) VALUES (val1, val2, val3) ON DUPLICATE KEY UPDATE col1 = new_val1, col2 = new_val2, col3 = new_val3; 这个语句首先尝试插入数据,如果遇到唯一键冲突,就会执行...

    MySQL的主键与唯一索引约束

    MySQL中的主键与唯一索引约束是...使用InnoDB存储引擎可以确保事务安全和一致性,而`ON DUPLICATE KEY UPDATE`语句则提供了更高级的冲突处理能力。在进行数据库设计时,应充分利用这些特性来保证数据的准确性和一致性。

    面试必问!为什么要使用分布式锁?.docx

    ON DUPLICATE KEY UPDATE等语句。但这种方法可能会增加数据库的负担,影响数据库性能。 2. **基于缓存实现**:利用缓存系统(如Redis)的原子操作来创建分布式锁。例如,可以使用SETNX命令设置键值,配合过期时间...

    mysql 批量更新及效率对比

    MySQL 批量更新的高效方法 MySQL 批量更新是指在 MySQL 数据库中批量更新多... On Duplicate Key Update 语句可以大大提高更新效率,而使用临时表的方法也可以提高效率,但是需要用户有 temporary 表的 create 权限。

Global site tag (gtag.js) - Google Analytics