利用mysql的dual表达到不插入重复记录

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

 当一张表的多个字段没有唯一索引时,想要在sql语句中加上判断达到不插入重复记录的目的,可以使用mysql的dual

INSERT INTO book_chapter_del
(book_id, chapter_id,status)
SELECT 
20049198 1000930 0
FROM dual
WHERE not exists (select 
*  from book_chapter_del
where book_id 
=   20049198  and chapter_id = 1000930 ) limit  1 ;

select express [from dual]; mysql总是作为返回该表达式值的普通select语句执行,返回一行记录的结果集,from dual 对mysql来说根本就是摆设!而oracle里该句必须有from dual;否则报错!

select express from dual where 0=2; mysq 和 oracle的行为一致:该句就如同你认为的正常表那样——会先计算where的条件,再行计算express;这里的where条件会决定expres是否会返回




本文转自 dogegg250 51CTO博客,原文链接:http://blog.51cto.com/jianshusoft/677868,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
265
分享
相关文章
mysql删除重复记录并且只保留一条【亲测可用】
mysql删除重复记录并且只保留一条【亲测可用】
189 0
MySQL中的批量操作(修改,插入)
在平常的项目中,我们会需要批量操作数据库的时候,例如:批量修改,批量插入,那我们不应该使用 for 循环去操作数据库,这样会导致我们反复与数据库发生连接和断开连接,影响性能和增加操作时间
592 0
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
软件测试mysql面试题:mysql、表“test”,两个字段 id 和 uid。查看数据表结构、插入一条记录、删除一条记录。
167 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等