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
您可能感兴趣
- mysql中innodb四种事务级别(MySQL InnoDB 锁的相关总结)
- mysql慢日志查询作用(MySQL 慢查询日志的开启与配置)
- mysqlselect语句汇总(MySQL Select语句是如何执行的)
- mysql账户访问权限(MySQL 权限控制详解)
- mysql与oracle体系结构(详解MySQL实时同步到Oracle解决方案)
- 忘记mysql密码怎么登录(Mysql用户忘记密码及密码过期问题的处理方法)
- mysql是否支持透明数据加密(MySQL的加密解密的几种方式小结)
- mysql存储引擎的创建与修改(关于MySQL Memory存储引擎的相关知识)
- mysql事务特性的主要作用(详解MySQL中事务的持久性实现原理)
- MySQL定时任务(EVENT事件)如何配置详解(MySQL定时任务EVENT事件如何配置详解)
- mysql返回结果集函数(mysql 判断是否为子集的方法步骤)
- mysql带log的版本(聊聊MYSQL中Redo Log是什么?)
- navicat连接mysql报1045(解决Navicat for MySQL 连接 MySQL 报2005错误的问题)
- 将SQL Server数据迁移到MySQL的常见工具
- mysql数据库迁移命令(MySQL数据迁移相关总结)
- mysql怎么查看表的字段(Mysql 获取表的comment 字段操作)
- 《囧妈》为何受抵制 春节七部影片撤档背后的责任与博弈(囧妈为何受抵制)
- 提醒 2019年起河南驾考要开设科目五 官方回应来了(2019年起河南驾考要开设科目五)
- 省 市书法家协会 送万福进万家 活动走进禹州美丽乡村(省市书法家协会)
- 点赞 禹州苌庄正式撤乡建镇 未来发展不可估量(禹州苌庄正式撤乡建镇)
- 它荣获 中国生态魅力镇 称号 就在咱们禹州,一起来看看(中国生态魅力镇)
- 真牛 禹州将建成中等城市(禹州将建成中等城市)
热门推荐
- css五种使用方法(CSS 的加载及加载顺序简介)
- docker配置redis集群(基于Docker搭建Redis主从集群的实现)
- css的五种基本选择器(CSS兼容问题之HACK技术)
- css中分割线的渐变效果(CSS学习笔记之可重复渐变repeating-linear-gradient)
- css边框样式讲解(纯css实现动态边框的示例代码)
- dedecms内容上下篇功能(dedecms按键盘方向键实现上一篇下一篇翻页功能)
- pandas如何删除索引列(pandas DataFrame 删除重复的行的实现方法)
- sublime text常用插件
- sql注入测试常用的工具(Sql注入工具_动力节点Java学院整理)
- tomcat优化jvm(Tomcat修正JDK原生线程池bug的实现原理)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9