Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Transakcja Mysql:zatwierdź i wycofaj

1) Wszystkie wprowadzone przez Ciebie zmiany są widoczne w ramach tej samej transakcji. Jeśli tak

START TRANSACTION;
INSERT INTO MyTable VALUES ('Hi there');
SELECT * FROM MyTable;

Twój wynik będzie zawierał „Cześć”. Ale jeśli uruchomisz drugie połączenie z bazą danych, nowy wiersz nie zostanie wyświetlony, dopóki nie zatwierdzisz transakcji z pierwszego połączenia. Spróbuj pobawić się tym, używając dwóch połączeń z bazą danych za pomocą wiersza poleceń.

Nie widzisz efektu w swojej witrynie, ponieważ nie możesz mieć tej samej transakcji w ramach dwóch połączeń z bazą danych (nowe połączenie z bazą danych zostanie nawiązane na początku żądania).

2) Wszystkie transakcje, które nie zostały zatwierdzone, zostaną wycofane po zamknięciu połączenia z bazą danych. Więc jeśli to są twoje jedyne dwa zapytania, nie ma różnicy. Jest jednak różnica między

START TRANSACTION;
INSERT INTO MyTable VALUES ('This one would be discarded on rollback');
ROLLBACK;
INSERT INTO MyTable VALUES ('This one will be permanent because not within transaction');  

3) Tak, wszystkie są takie same.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybór danych tabeli z deklaracjami PDO

  2. ASP.NET używa SqlConnection łączy MySQL

  3. PHP - Eksportuj tabele MySQL do pliku JSON

  4. Problem z połączeniem programu Java i MySQL:Nie znaleziono odpowiedniego sterownika

  5. XAMPP — nieoczekiwane zamknięcie MySQL