`
nakupanda
  • 浏览: 416878 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

MYSQL 有条件地插入记录

阅读更多
在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题的解决方案。


问题:我创建了一个表来存放客户信息,我知道可以用 insert 语句插入信息到表中,但是怎么样才能保证不会插入重复的记录呢?

答案:可以通过使用 EXISTS 条件句防止插入重复记录。


示例一:插入多条记录

假设有一个主键为 client_id 的 clients 表,可以使用下面的语句:



INSERT INTO clients
(client_id, client_name, client_type)
SELECT supplier_id, supplier_name, 'advertising'
FROM suppliers
WHERE not exists (select * from clients
where clients.client_id = suppliers.supplier_id);





示例一:插入单条记录


INSERT INTO clients
(client_id, client_name, client_type)
SELECT 10345, 'IBM', 'advertising'
FROM dual
WHERE not exists (select * from clients
where clients.client_id = 10345);




使用 dual 做表名可以让你在 select 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。
分享到:
评论

相关推荐

    根据excel数据批量新增或更新mysql的表

    在IT行业中,数据库管理和数据...总之,利用Python结合Excel和MySQL,我们可以高效地实现数据的批量导入和更新,这对于数据处理和分析工作极具价值。通过理解这些基础知识和操作步骤,你将能够更好地处理类似的任务。

    MySQL查询插入语句

    在本案例中,查询语句被用来获取特定条件下的记录ID,例如: ```csharp OldBZid = TPMySqlHelper.ExecuteScalar("SELECT ID FROM TP_BZ_ZB WHERE ZB_ALID = " + alid + " AND ZB_BZCode = 'PJSS'"); ``` 这里通过`...

    MySQL实现创建存储过程并循环添加记录的方法

    创建存储过程并循环添加记录是数据库管理中的常见任务,尤其是在需要批量插入数据时。以下将详细解释如何在MySQL中实现这一功能。 首先,我们需要了解存储过程的基本创建方法。在MySQL中,我们使用`CREATE ...

    易语言连接mysql数据库来实现读取写入修改实例

    这里的"condition"是用于定位记录的SQL条件语句,如"ID=1"。 在实际应用中,我们还需要处理可能的错误,比如网络问题、权限问题等。易语言提供了“捕获异常”命令来处理这类异常,确保程序的稳定运行。 至于"set....

    mysql转word文档

    至于【压缩包子文件的文件名称列表】"mysql转word文档",可能包含的文件可能有示例数据库脚本、Word模板文档、ODBC设置教程等,这些资源可以帮助用户更好地理解和执行上述步骤。 总的来说,将MySQL数据转换为Word...

    mysql语法手册-mysql语法手册-mysql语法手册-mysql语法手册

    1. 插入数据:INSERT INTO语句用于向表中添加新记录。 2. 查询数据:SELECT语句是SQL中最常用的,用于从表中检索数据。它支持各种选择条件(WHERE子句)、排序(ORDER BY子句)、分组(GROUP BY子句)和聚合函数(如...

    Mysql手册_MYSQL_

    5. 插入与更新数据:INSERT语句用于向表中添加新记录,UPDATE语句用于修改已存在的记录。DELETE语句则用于删除符合特定条件的记录。 6. 索引:索引能显著提升查询速度。MySQL支持多种类型的索引,如B-tree、HASH、...

    MySQL 是怎样运行的:从根儿上理解 MySQL(上).pdf

    MySQL是一种流行的开源关系型数据库管理系统,它以其高效、可靠和...掌握这些基础知识,能帮助我们深入理解MySQL的工作原理,更好地设计和优化数据库系统。无论是开发、运维还是数据库管理,这些知识都是必不可少的。

    MySQL数据表添加字段

    在MySQL数据库管理中,添加字段是一项常见的操作,用于在已有的数据表中增加新的列来扩展数据表的结构。这通常发生在数据需求发生变化或者需要记录更多相关信息时。本篇文章将详细探讨如何在MySQL中添加字段,以及...

    MySQL入门+进阶资源合集.pdf

    ### MySQL入门+进阶资源合集 #### 一、MySQL基础知识与入门 ##### 1.1 MySQL基础概念 - **数据库(Database)**:是用于存储数据的逻辑容器,它能够高效地管理和组织数据。 - **表(Table)**:是数据库中用来存储...

    MySQL常规使用以及源码学习记录.zip

    3. 编写插件:通过编写自定义的存储引擎、函数或触发器,更深入地理解MySQL的扩展机制。 4. 参与社区:加入MySQL开发者社区,参与讨论,阅读官方文档和博客,了解最新进展和最佳实践。 总结,MySQL的常规使用涉及...

    mysql数据库学习手册.docx

    《MySQL学习手册》主要针对Windows平台,深入浅出地介绍了如何管理和使用MySQL数据库系统。以下是对MySQL的安装、Workbench的使用以及基本的数据库操作的详细说明。 1. MySQL的下载与安装: 要安装MySQL,首先访问...

    实战体验几种MysqlCluster 方案.docx

    MySQL 集群方案详解 MySQL Cluster 是 MySQL 官方集群部署...D.Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。

    mysql_MYSQL_

    在MySQL数据库管理中,有时可能会...这些基本操作构成了MySQL日常管理的重要组成部分,掌握这些技能将有助于我们更有效地管理和维护数据库。通过学习和实践,你可以更熟练地应对各种数据库问题,提升数据库管理能力。

    mysql-5.5.40-win64安装包

    4. 插入数据:使用INSERT INTO语句向数据表中添加记录。 5. 查询数据:利用SELECT语句查询数据,可以结合WHERE、JOIN、GROUP BY等子句进行复杂查询。 6. 更新和删除:UPDATE语句用于修改已有数据,DELETE语句用于...

    mysql面试题,涉及MySQL基础、MySQL索引、MySQL语句 MySQL进阶等方面,适用于初、中级开发人员

    后者使用 REPLACE INTO 语句向表中插入记录,如果记录已存在,则先删除已有记录再插入新记录。 2. InnoDB 和 MyISAM 的区别 InnoDB 和 MyISAM 是 MySQL 的两种存储引擎,二者有许多不同之处: * 事务支持:InnoDB...

    mysql 笔记

    - 批量插入:可以通过创建一个文本文件,并使用 `load data local infile '/路径/文件名' into table 表名;` 命令将数据导入数据库。 - 如果是在 Windows 环境下创建的文件,则需要指定行终止符:`load data local...

    MySql 教程-如何学习 mysql.pdf

    学习 MySql 需要有系统的方法和步骤,包括培养兴趣和动力、了解基础知识、掌握 SQL 语句、利用好工具、多动手实践操作、记录笔记、高级进阶等。只有通过这些步骤,才能快速、有效地学习 MySql。

Global site tag (gtag.js) - Google Analytics