MySQL 语句级避免重复插入—— Insert Select Not Exist
想要插入一条数据,要避免重复插入,又不想折腾两回数据库连接操作,可以参考如下办法。
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相关推荐
- Android数据库处理重复插入Insert数据的问题
Android数据库处理重复插入Insert数据的问题 在创建表时,使用UNIQUE约束唯一的列,比如ID等.约束之后,再插入相同ID的数据会报错,此时要配合insert ignore into插入数 ...
- MySQL千万级数据JDBC插入
案例语句: String sql = "LOAD DATA LOCAL INFILE '" + dataFilepath + "' into table " + ...
- 一些常用的mysql语句实例-以后照写2
specification: 规范, 规格, 产品规范, 产品规格, 技术规范, 产品说明书. 如: create_specification, 等等 创建数据库时, 显式地指明, 字符集: crea ...
- mysql 避免重复添加_MySql三种避免重复插入数据的方法
前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...
- mysql重复上一行的快捷_MySql三种避免重复插入数据的方法
前言 MySql 在存在主键冲突或唯一键冲突的情况下,根据插入方式,一般有以下三种插入方式避免错误. insert ignore. replace into insert on duplicate k ...
- SQL (十四)插入数据(insert语句,把数据插入表中)
文章目录 插入完整的行:values子句 不安全写法 安全写法:在表名后的括号明确给出列名 小结 插入行的一部分:简单 插入某些查询的结果(即检索出的数据):insert select 示例:把另一个 ...
- 的table数据重复添加_Mysql的奇技淫巧 - 避免重复插入数据
Mysql的奇技淫巧 - 避免重复插入数据 MySql 避免重复插入数据 通常那我们插入一条带有唯一性字段数据的时候,我们先去查一下数据库有没有相同数据,需要操作2次数据库,总感觉这样做特别的low, ...
- dede mysql语句_让dede运行php代码和mysql语句
一.dede运行php代码 举例1: {dede:name runphp='yes'} $str = "hello "; @me = $str; @me .= "worl ...
- mysql语句生成,SQL语句生成器
SQL语句自动生成器正式版是一款功能强大.十分实用方便的数据库编程软件,可以帮助用户简便快捷的生成sql语句,SQL语句自动生成器正式版支持桌面数据库和大中型数据库,以及排序.条件.分组.函数等多种s ...
最新文章
- VirtualBox虚拟机网络连接设置的四种方式
- 【 FPGA 】UltraFast设计方法学笔记(时钟)
- 数据导入HBase最常用的三种方式及实践分析
- 操作系统都是用c语言写的吗,用C语言写关于操作系统的一个问题。
- android图库文件夹乱,防止文件夹包含在Android图库中 | MOS86
- git中如何合并某个指定文件?
- 使用NAS动态存储卷创建有状态应用
- mysql binlog 备份_偷偷的删表删库,跑路之前,尝试用binlog恢复MySQL数据
- mysql useunicode_jdbc连接mysql 为什么在连接时已经这样设置了 ?useUnicode=truecharacterEncodin...
- kafka生产者发送消息提升效率策略设置
- 第5章 电容元件与电感元件
- 视频转文字怎么操作?这些方法值得收藏
- adb命令——adb命令大全
- excel ctrl shift+键盘方向键的使用
- Java、JSP服装销售管理系统
- GB9706.1-2007名词解释:电气间隙、爬电距离,绝缘、接地等
- Fiddler抓包6-打断点(bpu)
- 机器学习()PR曲线绘制
- 总结:2018年互联网套路简史
- (转)shopex配置教程
热门文章
- 7-2 计算银行存款的本息 (5分)
- 关于deepmind lab平台的部署
- 【c++】b_game库sbwz函数讲解
- c语言表达式中有多个运算符 则运算时,如果在一个C语言表达式中有多个运算符,则运算时应该()。...
- python获取usb扫描枪数据_GitHub - RobinGitHub/USB4ScanGun: USB扫描枪识别,已获取对应扫描枪返回值的测试程序...
- 谈谈SpringBoot(二)
- pyecharts丨将主题的演变嵌入时间长河中——主题河流图
- 佳能Canon PIXMA TS8020 一体机驱动
- 嵌入式的新大陆fm30扫描模组在电影取票设备的应用
- Windows10更新22H2安装卡在61%的解决办法