Mysql deu bug

Forum sobre SQL.

Moderador: Moderadores

Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1309
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 1309
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: 20415
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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