当前位置:  数据库>mysql

mysql insert if not exists防止插入重复记录的方法

    来源: 互联网  发布时间:2014-09-06

    本文导语:  MySQL 当记录不存在时插入(insert if not exists) 在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问题...

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

在 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 语句后面直接跟上要插入字段的值,即使这些值还不存在当前表中。

    
 
 

您可能感兴趣的文章:

  • MySQL插入数据时插入无效列的解决方法
  • mysql 10w级别的mysql数据插入
  • PHP获取Mysql插入记录ID
  • mysql 不能插入中文问题
  • Mysql的longblob字段插入数据问题解决
  • 深入mysql并发插入优化详解
  • mysql 选择插入数据(包含不存在列)具体实现
  • linu as4.0 下 mysql数据库插入时乱码问题!!!求高人解决!!!
  • 解决mysql不能插入中文Incorrect string value
  • C++操作MySQL大量数据插入效率低下的解决方法
  • C# mysql 插入数据,中文乱码的解决方法
  • python文件读写并使用mysql批量插入示例分享(python操作mysql)
  • python插入mysql数据无效
  • MySQL下将一个表的数据插入到另外一个表的实现语句
  • 我在执行shell时,想在shell里直接向mysql数据库插入数据,我该如何写shell。
  • php 获取mysql插入数据的id值
  • 用shell脚本在mysql表中批量插入数据的方法
  • 分享MYSQL插入数据时忽略重复数据的方法
  • C# 批量插入Mysql数据的实例代码
  • {高分200分}jsp访问linux上的mysql数据库,取到和插入的数据全是乱码,我是这样设置的???
  • MySQL防止delete命令删除数据的两种方法
  • MySQL数据库防止人为误操作的实例讲解
  • PHP连接MySQL的2种方法小结以及防止乱码
  • MySQL数据库安全之防止撰改的方法
  • mysql优化连接数防止访问量过高的方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux服务器清空MySQL的history历史记录 删除mysql操作记录
  • 请问mysql如何控制表的记录总数!
  • mysql 判断记录是否存在方法比较
  • mysql中判断记录是否存在方法比较
  • MYSQL速度慢的问题 记录数据库语句
  • mysql合并多条记录的单个字段去一条记录编辑
  • mysql 存在该记录则更新,不存在则插入记录的sql
  • mysql 前几条记录语句之(limit)
  • mysql快速添加百万条记录的语句
  • mysql 查询第几行到第几行记录的语句
  • 删除mysql数据库中的重复数据记录
  • mysql 数据表中查找重复记录
  • mysql 记录不存在时插入 记录存在则更新的实现方法
  • 远程连接mysql数据库注意点记录
  • MySQL 查询某个字段不重复的所有记录
  • mysql 复制记录实现代码
  • mysql支持跨表delete删除多表记录
  • mysql删除表中某一字段重复的记录
  • shell脚本中设置mysql记录分隔符为回车
  • mysql中Load Data记录换行问题的解决方法
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • MySQL Workbench的下载安装与使用教程


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3