sql >> Databáze >  >> RDS >> Mysql

Transakce Mysql:potvrzení a vrácení zpět

1) Všechny provedené změny jsou viditelné v rámci stejné transakce. Pokud ano

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

váš výstup bude obsahovat 'Ahoj'. Pokud však zahájíte druhé připojení k databázi, nový řádek se nezobrazí, dokud transakci nepotvrdíte z prvního připojení. Zkuste si s tím pohrát pomocí dvou databázových připojení pomocí příkazového řádku.

Na svém webu nevidíte efekt, protože nemůžete mít stejnou transakci v rámci dvou připojení k databázi (nové připojení db bude vytvořeno na začátku vašeho požadavku).

2) Všechny transakce, které nejsou potvrzeny, budou po uzavření spojení s databází vráceny zpět. Pokud jsou to tedy vaše jediné dva dotazy, není v tom žádný rozdíl. Existuje však rozdíl mezi

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) Ano, všechny jsou stejné.



  1. Vysoké využití místa z crfclust.bdb

  2. Osvědčené postupy v PHP a MySQL s mezinárodními řetězci

  3. poškození injekcí mysql?

  4. MySQL:Získání čísla řádku (hodnocení) pro konkrétní řádek