BEGIN; SELECT * FROM TABLE WHERE id = 10 FOR UPDATE; UPDATE TABLE SET name = 'moje odkrycie' WHERE id = 10; 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ą?