mysql程序中判断select返回空值(解决MySQL读写分离导致insert后select不到数据的问题)
类别:数据库 浏览量:2237
时间:2022-01-23 02:09:59 mysql程序中判断select返回空值
解决MySQL读写分离导致insert后select不到数据的问题MySQL设置独写分离,在代码中按照如下写法,可能会出现问题
|
// 先录入 this. insert (obj); // 再查询 Object res = this.selectById(obj.getId()); res: null ; |
线上的一个坑,做了读写分离以后,有一个场景因为想方法复用,只传入一个ID就好,直接去库里查出一个对象再做后续处理,结果查不出来,事务隔离级别各种也都排查了,最后发现是读写分离的问题,所以换个思路去实现吧。
补充知识:MySQL INSERT插入条件判断:如果不存在则插入
我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入。如果使用一条INSERT语句实现呢?
对于普通的 INSERT 插入,如果想要保证不插入重复记录,我们只有对某个字段创建唯一约束实现;
那有没有不创建唯一约束,仅通过 INSERT INTO 一条语句实现的方案呢?
答:使用 INSERT INTO IF EXISTS, 具体语法如下
|
INSERT INTO table (field1, field2, fieldn) SELECT 'field1' , 'field2' , 'fieldn' FROM DUAL WHERE NOT EXISTS( SELECT field FROM table WHERE field = ?) |
例:
|
INSERT INTO a (order_id, operator, oper_date, memo) SELECT '3' , 'onion3' , '2017-11-28' , '测试3' from DUAL where not exists( select order_id from a where operator= 'onion3' and memo = '测试3' ); |
以上这篇解决MySQL读写分离导致insert后select不到数据的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持开心学习网。
原文链接:https://blog.csdn.net/cainiao1412/article/details/106113013
您可能感兴趣
- python mysql配置(详解python校验SQL脚本命名规则)
- python怎么操作mysql(详解Python的数据库操作pymysql)
- navicat连接mysql报1045(解决Navicat for MySQL 连接 MySQL 报2005错误的问题)
- win10安装mysql8.0如何启动(win10下mysql 8.0.23 安装配置方法图文教程)
- mysql cache(MySQL取消了Query Cache的原因)
- mysql各种锁详解(MySQL 查看事务和锁情况的常用语句分享)
- mysql中group_concat
- mysql和explain哪个好(MySQL EXPLAIN输出列的详细解释)
- mysql索引优化技巧(MySQL如何优化索引)
- mysql数据类型和使用方法(MySQL数据类型全解析)
- ubuntu20.2安装mysql(Ubuntu 14.04下mysql安装配置教程)
- mysql高级概念(MySQL 自定义变量的概念及特点)
- docker部署mysql多实例(Docker部署mysql一主一从的操作方法)
- mysql基础操作报告(gorm操作MySql数据库的方法)
- mysql集群是用什么搭建的(MySQL5.7 集群配置的步骤)
- mysql类型转换函数推荐(mysql 数据类型转换的实现)
- 吉林神秘传染链跨省 传染源尚未找到,舒兰 封城(吉林神秘传染链跨省)
- 吉林舒兰 封城 聚集性疫情传播链已延至沈阳,有一个细节让人忧心(吉林舒兰封城)
- 1天密接者猛增77人,患者轨迹透露危险信号 吉林市全面封闭管理(1天密接者猛增77人)
- 吉林舒兰 封城 15人确诊 276人隔离,出现跨省传播(吉林舒兰封城)
- 四月新番CP人气榜公布,《剃须》两度上榜,沙优不是女朋友(四月新番CP人气榜公布)
- 2019年外媒秋季新番动画角色CP排行榜,桐人和爱丽丝落榜(2019年外媒秋季新番动画角色CP排行榜)
热门推荐
- docker脚本指定linux(在docker中执行linux shell命令的操作)
- sqlserver数据库实时同步(SQL Server实时同步更新远程数据库遇到的问题小结)
- 网页502错误怎么解决(502 bad gateway是什么意思?网页打不开出现502 bad gateway怎么解决?)
- thinkphp5怎么设置默认返回(thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结)
- aspwebserver怎么操作(EasyWebServer怎么用?EasyWebServer网站服务器软件使用教程)
- sqlserver查询信息表(SQL Server中Table字典数据的查询SQL示例代码)
- python程序锁教程(在python里协程使用同步锁Lock的实例)
- 虚拟主机干嘛用的(虚拟主机购买后怎么操作?)
- django数据库详解(Django页面数据的缓存与使用的具体方法)
- 如何采集nginx的日志(Filebeat 采集 Nginx 日志的方法)