Loading:


Wyrażenia, które wywołują automatycznie COMMIT - MySQL

 

Wyrażenia, które wywołują automatycznie COMMIT


Niektóre polecenia automatycznie kończą transakcję pomimo tego, że nie wykonamy explicite polecenia COMMIT.

ALTER TABLE BEGIN CREATE INDEX
DROP DATABASE DROP INDEX DROP TABLE
LOAD MASTER DATA LOCK TABLES RENAME TABLE
SET AUTOCOMMIT=1 START TRANSACTION TRUNCATE TABLE

Polecenie UNLOCK TABLES kończy transakcję ze skutkiem COMMIT nawet jeśli jakies tablice są w danym momencie zablokowane.





mysql> SAVEPOINT indetyfikator
mysql> ROLLBACK TO SAVEPOINT indetyfikator

Wyrażenie SAVEPOINT ustawia pewne miejsce w transakcji o nazwie indetyfikator. Jeśli jakaś transakcja ma już oznaczone w taki sam sposób (za pomocą tego samego inentyfikatora) miejsce, wówczas to miejsce jest zamazywane przez nowe miejsce.

Wyrażenie ROLLBACK TO SAVEPOINT cofa transakcję do punktu oznaczonego przez indetyfikator. Zmiany, które zaszły w rekordach po miejscu oznaczonym indetyfikatorem, są cofane poleceniem ROLLBACK, natomiast te, które były wykonane przed identyfikatorem, nie są cofane. Identyfikatory, które zostały ustawione po identyfikatorze, do którego odwołaliśmy się w poleceniu ROLLBACK TO SAVEPOINT są usuwane.

Jesli wyrażenie ROLLBACK TO SAVEPOINT zwraca błąd




ERROR 1181: Got error 153 during ROLLBACK

to oznacza to, że nie istnieje miejsce oznaczone przez identyfikator, do którego się odnosiliśmy.

Jeśli użyjemy zwykłego COMMIT lub ROLLBACK, wówczas wszystkie identyfikatory miejsc zostaną usunięte.


Źródło: http://gryf.mif.pg.gda.pl/~mate/wyklady/bazy/transakcje.html



Napisz Artyku³

Listing

niema




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38523
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2024 v.1.5 | design: diviXdesign & rainbowcolors