想要插入一条数据,要避免重复插入,又不想折腾两回数据库连接操作,可以参考如下办法。

INSERT INTO table(column1,column2,column3 ...columnN)
SELECT value1,value2,value3 ...valueN
FROM dual
WHERE NOT EXISTS(  SELECT *  FROM table  WHERE value = ?
);

dual是为了构建查询语句而存在的表,Oracle中很常见,配合INSERT ... SELECT构建成我们需要的表,并指定了数据项. 
EXISTS通过这个判断是否存在的函数,就免去了我们做IF-ELSE的冗繁操作. 
例:

INSERT INTO content (  detail,  status,  beginTime,  endTime)
SELECT  @detail,  1,  NULL,  NULL
FROM DUAL  WHERE NOT EXISTS(  SELECT contentId   FROM content   WHERE detail=@detail); 

@detail是要存入的内容,这里对内容进行了检索,如果要这么做,最好对该字段做唯一约束,或加索引。 
省掉了IF-ELSE,在iBatis配置一下就ok了,哈!

还有个更坚决的办法——replace into:

replace into blacklist(userInfoId,uid)
select userInfoId,uid from user_info u where uid in(
'u303565440','u303566922','u303515112','u303559738');  

MySQL 语句级避免重复插入—— Insert Select Not Exist相关推荐

  1. Android数据库处理重复插入Insert数据的问题

    Android数据库处理重复插入Insert数据的问题 在创建表时,使用UNIQUE约束唯一的列,比如ID等.约束之后,再插入相同ID的数据会报错,此时要配合insert ignore into插入数 ...

  2. MySQL千万级数据JDBC插入

    案例语句: String sql = "LOAD DATA LOCAL INFILE '" + dataFilepath + "' into table " + ...

  3. 一些常用的mysql语句实例-以后照写2

    specification: 规范, 规格, 产品规范, 产品规格, 技术规范, 产品说明书. 如: create_specification, 等等 创建数据库时, 显式地指明, 字符集: crea ...

  4. mysql 避免重复添加_MySql三种避免重复插入数据的方法

    前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...

  5. mysql重复上一行的快捷_MySql三种避免重复插入数据的方法

    前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...

  6. SQL (十四)插入数据(insert语句,把数据插入表中)

    文章目录 插入完整的行:values子句 不安全写法 安全写法:在表名后的括号明确给出列名 小结 插入行的一部分:简单 插入某些查询的结果(即检索出的数据):insert select 示例:把另一个 ...

  7. 的table数据重复添加_Mysql的奇技淫巧 - 避免重复插入数据

    Mysql的奇技淫巧 - 避免重复插入数据 MySql 避免重复插入数据 通常那我们插入一条带有唯一性字段数据的时候,我们先去查一下数据库有没有相同数据,需要操作2次数据库,总感觉这样做特别的low, ...

  8. dede mysql语句_让dede运行php代码和mysql语句

    一.dede运行php代码 举例1: {dede:name runphp='yes'} $str = "hello "; @me = $str; @me .= "worl ...

  9. mysql语句生成,SQL语句生成器

    SQL语句自动生成器正式版是一款功能强大.十分实用方便的数据库编程软件,可以帮助用户简便快捷的生成sql语句,SQL语句自动生成器正式版支持桌面数据库和大中型数据库,以及排序.条件.分组.函数等多种s ...

最新文章

  1. VirtualBox虚拟机网络连接设置的四种方式
  2. 【 FPGA 】UltraFast设计方法学笔记(时钟)
  3. 数据导入HBase最常用的三种方式及实践分析
  4. 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。
  5. android图库文件夹乱,防止文件夹包含在Android图库中 | MOS86
  6. git中如何合并某个指定文件?
  7. 使用NAS动态存储卷创建有状态应用
  8. mysql binlog 备份_偷偷的删表删库,跑路之前,尝试用binlog恢复MySQL数据
  9. mysql useunicode_jdbc连接mysql 为什么在连接时已经这样设置了 ?useUnicode=truecharacterEncodin...
  10. kafka生产者发送消息提升效率策略设置
  11. 第5章 电容元件与电感元件
  12. 视频转文字怎么操作?这些方法值得收藏
  13. adb命令——adb命令大全
  14. excel ctrl shift+键盘方向键的使用
  15. Java、JSP服装销售管理系统
  16. GB9706.1-2007名词解释:电气间隙、爬电距离,绝缘、接地等
  17. Fiddler抓包6-打断点(bpu)
  18. 机器学习()PR曲线绘制
  19. 总结:2018年互联网套路简史
  20. (转)shopex配置教程

热门文章

  1. 7-2 计算银行存款的本息 (5分)
  2. 关于deepmind lab平台的部署
  3. 【c++】b_game库sbwz函数讲解
  4. c语言表达式中有多个运算符 则运算时,如果在一个C语言表达式中有多个运算符,则运算时应该()。...
  5. python获取usb扫描枪数据_GitHub - RobinGitHub/USB4ScanGun: USB扫描枪识别,已获取对应扫描枪返回值的测试程序...
  6. 谈谈SpringBoot(二)
  7. pyecharts丨将主题的演变嵌入时间长河中——主题河流图
  8. 佳能Canon PIXMA TS8020 一体机驱动
  9. 嵌入式的新大陆fm30扫描模组在电影取票设备的应用
  10. Windows10更新22H2安装卡在61%的解决办法