Witam, mam przykładowe zapytanie:
UPDATE tabela SET kasa=if(kasa<100,kasa,kasa-100) WHERE kto=1
Chodzi o to, aby w tabeli odjąć 100 zł, jeśli ktoś posiada więcej pieniędzy niż 100 zł.
Warunków będzie więcej i kod będzie bardziej skomplikowany. Dlatego potrzebuję wiedzieć czy w chwili wykonywania instrukcji UPDATE ktoś miał więcej czy mniej niż 100 zł.
Mogę zrobić to dwoma instrukcjami:
UPDATE...
SELECT...
I w ten sposób sprawdzić, czy stan konta się zmienił.
Ale jeśli w ciągu sekundy wykonywanych będzie 1000 operacji z różnych źródeł i wtedy pomiędzy UPDATE... a SELECT... wartość kasy może się już zmienić (przynajmniej mi się tak wydaje, że to możliwe).
Jak uzyskać jakąś informację zwrotną korzystając z jednego polecenia?
Moje pytania to:
1. Czy jeśli wykonam dwa polecenia w jednym zapytaniu "UPDATE...; SELECT..." to pomiędzy UPDATE a SELECT, w tej tysięcznej części sekundy, ktoś inny może zmodyfikować tabelę?
2. Czy istnieje jakiś bardziej elegancki sposób, aby uzyskać informacje w PHP z funkcji UPDATE, czy element został zmieniony?
pozdr.