Mysql deu bug

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Mysql deu bug

Mensagem por ANDRIL »

Tenho uma hospedagem com banco Mysql tenho a vários anos com PHP 5.4 sem problemas.
Aconteceu uma situação que não consigo entender como pode ter ocorrido, nunca havia acontecido.
Tabela

ID| FUNCIONARIO | BRINDE | DISTRIBUIDOR | FORNECEDOR | DATAENTREGA
10| JOSE PEREIRA | A | JOSE | LUNA | 2022-06-09 07:00:00
11| JOSE PEREIRA | B | JOSE | LUNA | 2022-06-09 07:00:00
12| AMANDA SILVA | A | JOSE | LUNA | 2022-06-09 07:00:13
13| PEDRO SOUZA | A | AMARAL | LUNA | 2022-06-09 07:00:24
14| MARI SILVA | B | JOSE | LUNA | 2022-06-09 07:00:35
15| JOYCE SOUZA | A | AMARAL | LUNA | 2022-06-09 07:00:48
O funcionário JOSE PEREIRA foi retirar seu brinde. Ele tem o brinde A e B em um só UPDATE os 2 são processados colocando a data e hora da entrega no caso 2022-06-09 07:00:00 que esta correto.
Nas próximas entregas quando os outros vieram retirar seus brindes, já estavam todos baixados como entregue. Note que cada horário é diferente um do outro e sempre com um intervalo de 10 a 15 segundos, não tem como pois o processo do atendente demora um pouco entre um atendimento e outro, então este intervalo não bate,

Outra, toda a query do update que da baixa no brinde roda pelo ID então como pode ter agido nos demais? Se fosse uma unica operação todos deveriam ter a mesma data e hora da entrega e não tem.
No caso do JOSE PEREIRA tem 2 registros, para cada um faz um update separado.
UPDATE retiradas SET dataentrega='2022-06-09 07:00:00' WHERE id=10 AND distribuidor='JOSE' AND idfornecedor="LUNA" LIMIT 1
UPDATE retiradas SET dataentrega='2022-06-09 07:00:00' WHERE id=11 AND distribuidor='JOSE' AND idfornecedor="LUNA" LIMIT 1
Para simular o que pode ter ocorrido, tirei da query até o id=10 e também o LIMIT 1 para abranger mais
UPDATE retiradas SET dataentrega='2022-06-09 07:00:00' WHERE distribuidor='JOSE' AND idfornecedor="LUNA"
ID| FUNCIONARIO | BRINDE | DISTRIBUIDOR | FORNECEDOR | DATAENTREGA
10| JOSE PEREIRA | A | JOSE | LUNA | 2022-06-09 07:00:00
11| JOSE PEREIRA | B | JOSE | LUNA | 2022-06-09 07:00:00
12| AMANDA SILVA | A | JOSE | LUNA | 2022-06-09 07:00:00
13| PEDRO SOUZA | A | AMARAL | LUNA | 2022-06-09 07:00:24

14| MARI SILVA | B | JOSE | LUNA | 2022-06-09 07:00:00

15| JOYCE SOUZA | A | AMARAL | LUNA | 2022-06-09 07:00:48
Notem que ao retirar o ID da query, todos assumem a mesma data e hora da entrega o que esta correto. Resolvi fazer teste sem o ID pensando que lá na hospedagem eles fazendo alguma alteração dos arquivos php pudesse ter lido a query pela metade ficando sem o ID e assim abrangendo mais registros do que deveria abranger, mas como o teste acima, deveria ter colocado a mesma data e hora em todos, e não com intervalo mencionado acima.

Vendo no log do php notei que neste dia o SERVIDOR da hospedagem passou por alguns problemas técnicos, inclusive teve alguns problemas devido ter alterado a versão do PHP para 7, durante alguns minutos, depois acertaram para a correta novamente 5.4,

O provedor não conseguiu me disponibilizar as querys que chegaram até o banco, devido nossa hospedagem ser do tipo compartilhada e não dedicada, assim fiquei sem ter algo para consultar.

Enfim, meu conhecimento em Mysql é bem restrito, sempre imaginei ser um banco confiável.
Alguma ideia do que pode ter ocorrido?
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mysql deu bug

Mensagem por JoséQuintas »

Revise o fonte.
O intervalo de tempo não tem a ver com usuário, mas também não teria a ver com uma query, porque a execução seria praticamente instantânea.
Máquina diferente com horário errado?
Pelo que parece, o horário é fornecido pelo programa e não automático do MySQL.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Mysql deu bug

Mensagem por ANDRIL »

JoséQuintas escreveu:Pelo que parece, o horário é fornecido pelo programa e não automático do MySQL.
Sim José o horário de entrega o sistema que manda porem o sistema é online e a data é pega do servidor não do pc do cliente. Por isso algo estranho ocorreu, todos deveriam ter o mesmo horário e não diferentes pois independentemente de ser feito um loop no php para fazer um update por vez, o horário deveria ser o mesmo por que ela é obtida fora do loop.

Acabei criando uma rotina para salvar todas as querys e seus resultados em log, acaso ocorra novamente, tenho um norte para tentar entender o motivo.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Mysql deu bug

Mensagem por JoséQuintas »

Usuário com várias janelas abertas só pra deixar o programador maluco? kkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder