(十万火急在线等)php mysql中数据插入A表时同步更新B表中数据用php如何实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(十万火急在线等)php mysql中数据插入A表时同步更新B表中数据用php如何实现?相关的知识,希望对你有一定的参考价值。

我想用php编写,当B表中有数据插入时,若A表中key栏无数据则添加1。请问各位大侠如何现实?

你可以写一个判断,如果B表数据插入时,A表没有数据,则判断赋值1到数据库,然后进行存储。如果有内容就获取正常内容那样。追问

能不能写个最简单的逻辑判断例子给我?重点是每更新一次就只给空的一栏赋值1

追答

if(b不等于空){
if(a为空)
a=1 else
a数据库语句

大概是这么一个过程。可能有出入。

追问

b不等于空不可能啊,b是有数据的,我要在b数据有插入新数据时更改A,有这个判断的方法吗?

追答

你将数据库语句写入判断里面。。。。万事都有可能,判断写好为妙。

追问

我就是不知道这个语句什么写啊,网上我只找到mysql命令,但php语法如何接写?

追答

这个要看你具体的数据库设置的。建议你去找一个经常做网站的,来付费解决该问题。

参考技术A 你这描述的太少了吧,不懂你要做什么。
A表更新数据库时候你直接更新B表就可以啊。数据库怎么能php写?只能写sql操作数据库,php 只是写逻辑判断、
参考技术B google: mysql trigger 参考技术C 意思是在b表插入数据,若a表key项没有数据即插入数据1吗

一天一坑系列Mysql数据库表莫名其妙插入了重复数据,如何一招妙手回春

1、前言

又是忙碌开发的一天。然鹅,群里老板突然发飙:为什么线上数据出现了重复数据????十万火急,快点处理!!!(这种紧迫感,做过开发的都懂 π__π !)

还能咋办?连接服务器,开整吧~~~~~~~~~~~~~~~


2、解决过程

2.1 查看问题

先根据重复数据订单,查下数据库,看看数据情况:

通过数据表可以看到,同一订单号1961,确实在同一时间创建了两条同样的数据。。炸裂!!


2.2 分析问题

通过数据可以知道,插入数据的时候,数据相同,时间点完全一致,那么肯定是同一操作,出现了double执行。

但是,是如何重复操作的呢?有以下几种可能:

  1. 重复提交
  2. 同一请求,被多处响应
  3. 数据库事务出了问题,出现了脏数据

2.3 定位问题

这里先说一下我们的业务流程:生成一个订单,然后通过kafka消费模式,生成订单对应的监控日志。。现在监控日志出现了重复监控数据!!!

通过上面3中可能,需要再定位一下具体问题所在。

第一种情况:

因为重复提交,肯定是存在一个操作时间差的,即使是很快速的请求。。但我们这个数据记录是同一时间点,精确到了秒!!!如果仅仅只是创建订单,同一秒生成重复数据可能性还是很大的!而业务中是通过kafka去消费的,所以可能性并不大!更主要的是,通过查看日志,发现并没有出现重复数据的日志,只有一条插入记录打印日志!如下:

所以,第一种可能性基本排除!!!

第三种情况:

如果数据库出现事务问题,那么势必不会只是1个业务受到影响。大概率是会出现很多问题的。。所以,这一块也暂放。。等排除完其他可能,在深究一番!!!

第二种情况:

这种情况,其实目前是最符合我们业务流程可能会发生的问题所在。。。但是,基于第一条分析中,只打印了一个日志记录,那么,另外一个响应服务器的日志在哪里呢?这成为定位此种可能性的关键所在了!

因为这个服务是单体服务,是直接在flink中启动的,在flink中的日志已经找到了。所以,难道是谁多起了一个服务?于是通过命令

ps -ef|grep 服务项目名

发现该服务的jar包有单独在服务器上启动,也就是说加上flink中启动的那个服务,本服务器上启动了两个服务。
话不多说,胜利的曙光就在眼前。。

进入jar启动路径下的日志查看了一下,果然出现了同一订单的另一条监控日志的插入打印记录。。如下图:


2.4 解决问题

问题已经定位到了!正常情况下,我们只会在flink中启动项目jar包,所以解决方法就是:

kill -9 jar包进程ID

杀死单独启动的jar包的进程即可。。后续观察了一段,果然没有再出现过此问题!


3、总结

解决bug时,一定要胆大心细!冷静分析!按照正确的思维去处理问题,一定会事半功倍的!

路漫漫,bug不断!

bug常伴吾身,面对bug,大喊一声:哈塞给


最后,大家可以说下自己遇到问题和解决BUG的高效解决办法和方式吗?欢迎留言讨论、分享一波!!

以上是关于(十万火急在线等)php mysql中数据插入A表时同步更新B表中数据用php如何实现?的主要内容,如果未能解决你的问题,请参考以下文章

一天一坑系列Mysql数据库表莫名其妙插入了重复数据,如何一招妙手回春

一天一坑系列Mysql数据库表莫名其妙插入了重复数据,如何一招妙手回春

mysql不能往表中的列插入中文,求大神解答,在线等~~~

在oracle中,如何利用sql语句,往一个表中插入1000行相同的数据。在线等,求解

redis中set类型怎么删除元素中最后插入的值,急,在线等!我用的是php

如何将数亿Mysql数据无缝迁移到MongoDB?