Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Transakcje a PHP., Moje wczorajsze odkrycie :)
Black-Berry
post
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Wczoraj odkryłem w MySql mechanizm transakcji. Działa to na prostej zasadzie. Łączy się zapytania w większą grupę którą można zatwierdzić albo cofnąć. Na przykład:

  1. BEGIN;
  2. SELECT * FROM TABLE WHERE id = 10 FOR UPDATE;
  3. UPDATE TABLE SET name = 'moje odkrycie' WHERE id = 10;
  4. COMMIT;

komenda 'FOR UPDATE' sprawia, że tablica 'table' jest zablokowana do odczytu dla innych połaczeń. Obejmując znacznikami BEGIN i COMMIT całą serię selectów i updatów dodających np nowy artykuł mam pewność, że admin i na przykąłd moderator klikając 'zapisz' w tej samej sekundzie nie skrzyżuja danych i nie rozwalą integralności bazy. Jescze trochę o tym czytam ale nie mogę doszukać się odpowiedzi na kilka pytań:

1. Czy dobrze główkuję?
2. Co jeśli moderatorowi braknie prądu? Czy to będzie oznaczało dead lock bo tabela z artykułami nigdy sie nie odblokuje? COMMIT nie nastąpi przecież nigdy.
3. Czy czegoś nie przeoczyłem?
4. Czy to jest tak, ze jesli mam mderatora i administratora i jesli oboje chcą dodać artykuł to czy faktycznie są to odrębne połączenia z bazą?

Ten post edytował Black-Berry 27.08.2008, 09:41:05
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 16:32