`
sangei
  • 浏览: 336380 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

MySQL INSERT插入条件判断:如果不存在则插入

阅读更多

普通的 INSERT INTO 插入:

1
2
3
INSERT INTO card(cardno, cardnum) VALUES('1111''100');
INSERT INTO card(cardno, cardnum) VALUES('2222''200');
...

 

对于普通的 INSERT 插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一约束实现(比如:cardno卡号不能重复);

那有没有不创建唯一约束,仅通过 INSERT INTO 一条语句实现的方案呢?

答案:有的, INSERT INTO IF EXISTS 具体语法如下:

1
INSERT INTO table(field1, field2, fieldn) SELECT 'field1''field2''fieldn' FROM DUAL WHERE NOT EXISTS(SELECT field FROM table WHERE field = ?)

 

其中的 DUAL 是一个临时表,不需要物理创建,这么用即可。

针对上面的card示例的改造如下:

1
2
INSERT INTO card(cardno, cardnum) SELECT '111''100' FROM DUAL WHERE NOT EXISTS(SELECT cardno FROM card WHERE cardno = '111');
INSERT INTO card(cardno, cardnum) SELECT '222''200' FROM DUAL WHERE NOT EXISTS(SELECT cardno FROM card WHERE cardno = '222');

 

搞定!

 

分享到:
评论

相关推荐

    解决MySQL读写分离导致insert后select不到数据的问题

    MySQL设置独写分离,在代码中按照如下写法,可能会出现问题 ...补充知识:MySQL INSERT插入条件判断:如果不存在则插入 我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入。如果使用一条IN

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

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

    mysql的插入问题 怎么获得自动增长的ID

    当向表中插入新记录时,如果该记录的ID字段未指定值,则系统会自动分配一个唯一的递增ID。 - **MyISAM与InnoDB的区别**: - **MyISAM**:使用独立于数据行的文件来存储自动增长的ID值。这意味着即使在MySQL服务...

    mysql插入前判断数据是否存在的操作

    可以插入前进行判断要插入的数据是否存在业务代码如下 : INSERT INTO t_topic_vistor(user_id,topic_code) SELECT '218', 'XQ33019920170811142528217' FROM DUAL WHERE NOT EXISTS(SELECT * FROM t_topic_vistor ...

    Mybatis 3+Mysql 实现批量插入

    综上所述,利用MyBatis结合MySQL实现批量插入不仅可以大幅提高数据处理效率,还能有效降低系统资源消耗,是数据库操作中不可或缺的一项技能。通过上述详细讲解,相信读者已经对如何实现批量插入有了清晰的理解。

    mysql-insert-progress:跟踪大型 MySQL 插入进度

    监控大型 MySQL 插入/导入的进度 介绍 如果您曾经导入过大型 mysql 表,您就会知道等待是多么令人沮丧。 这个小型 bash 脚本允许您跟踪大型 mysql 插入/导入的进度(以 % 为单位)。 用法 ./track-progress.sh ...

    MySql insert插入操作的3个小技巧分享

    在MySQL数据库中,INSERT语句是用于向表中插入新数据的基本操作。本文将分享三个关于MySQL INSERT操作的小技巧,帮助你更高效地处理数据。 ### 技巧1:从其他表中插入数据 当你需要将一个表中的部分数据复制到另一...

    mysql insert锁机制1

    MySQL的Insert锁机制是数据库管理系统中确保数据一致性和并发控制的重要组成部分。在MySQL的InnoDB存储引擎中,插入操作不仅涉及到行级锁,还可能涉及Gap锁和Next-Key Locks,这些锁机制的设计是为了防止幻读...

    MySQL查询插入语句

    ### 一、MySQL 查询与插入操作的基础概念 #### 1. 查询语句(SELECT) 查询语句是用于从数据库中检索数据的一种方式。基本语法如下: ``` SELECT column1, column2, ... FROM table_name; ``` 在本案例中,查询...

    mysql-bulk-insert:测试mysql合并插入的吞吐

    mysql合并插入性能测试测试数据Mysql合并插入可以带来*10的吞吐提升,而事务提交没有明显的收益。下面是在一台普通MYSQL机型下的TPS实测数据:[root@10-9-136-206 mysql-bulk-insert]# ...

    MySQL创建存储过程批量插入10万条数据

    MySQL创建存储过程批量插入10万条数据 存储过程 1、首先防止主键冲突,我们清空表。 TRUNCATE table A_student; 2、编写存储过程 delimiter ‘$’; CREATE PROCEDURE batchInsert(in args int) BEGIN declare i int ...

    mysql如果数据不存在,则插入新数据,否则更新的实现方法

    MySQL 实现数据不存在则插入新数据,否则更新的方法 MySQL 中有多种方法可以实现数据不存在则插入新数据,否则更新的功能。下面我们将介绍其中的两种常见方法:replace Into 和 insert into … on duplicate key ...

    Python3 操作 MySQL 插入一条数据并返回主键 id的实例

    在Python3中操作MySQL数据库并插入一条数据,然后获取并返回这条数据的主键id是数据库编程中常见的需求。这一过程可以分为几个关键步骤:数据库连接、执行插入操作、获取主键id以及事务提交。下面详细说明每个步骤...

    多表连接插入不存在的数据

    如果不存在,则执行插入操作。 ##### 示例 2:向权限表插入组权限数据 ```sql INSERT INTO permission (type, obj_id, value) SELECT 101, id, 7 FROM groups WHERE NOT EXISTS ( SELECT * FROM permission ...

    提高mysql插入数据的速度.pdf

    - 尽管这不在文档中直接提及,但提升磁盘I/O性能对于提高MySQL插入速度同样重要。这包括优化文件系统、使用更快的磁盘或者使用SSD等措施。 9. 使用第三方工具监控和管理: - 使用如Unix的top、Windows的任务管理...

    jsp连接MySQL实现插入insert操作功能示例

    在index.jsp页面输入数据,提交到mysql——insert.jsp页面进行插入数据库的操作。 index.jsp页面代码如下: 代码如下: <%@ page language=”java” pageEncoding=”utf-8″%> <%@ page contentType=”...

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

    在MySQL中,有时候我们需要在确保记录不存在的情况下插入新数据,如果记录已经存在,则需要更新已有数据。这种操作通常被称为“Upsert”或者“Insert...On Duplicate Key Update”。MySQL提供了这样的功能,但要注意...

    mysql数据插入效率比较

    4. 利用MySQL的INSERT INTO...VALUES语法的多行插入:这是一种更高效的批量插入方式,允许在一个INSERT语句中插入多行数据。例如,`INSERT INTO table_name (column1, column2) VALUES (value1, value2), (value3, ...

    Mysql – 如果数据库表中的记录存在相同记录则不插入记录,反之插入。

    如果尝试插入的记录中`ID`字段与已有记录相同,MySQL会识别出这是一个重复的值,并且在`IGNORE`关键字的作用下,不执行插入操作,从而避免了错误的发生。 创建表的结构可能是这样的: ```sql CREATE TABLE `my_...

Global site tag (gtag.js) - Google Analytics