Tomasz Zadora programuję
Temat: LOCK after LOCK
Witam,Sprawa dotyczy tabel typu MyISAM, w dokumentacji czytam:
"If a session issues a LOCK TABLES statement to acquire a lock while already holding locks, its existing locks are released implicitly before the new locks are granted."
rozumiem, że w tym momencie między "LOCKAMI" powstaje "dziura", tak, że jeżeli:
1) Zakładam LOCK READ na tabele "product"
2) Czytam z tabeli "product" wartość kolumny "price"
3) Zakładam nowy LOCK WRITE na tabelę product
4) Wartość odczytana w kroku 2) może być już nieaktualna, ponieważ w momencie wykonania kroku 3) istnieje szansa, że inna sesja/połączenie zablokuje tabelę WRITE LOCKiem zaraz po ściągnięciu LOCK READ ustawionego w kroku 1) i nadpisze wartość "price" ?
Mam akurat taki przypadek, że muszę to zrobić na MyISAM a nie transakcjach w InnoDB.Tomasz Zadora edytował(a) ten post dnia 25.05.11 o godzinie 23:19