sql >> Database teknologi >  >> RDS >> Mysql

Mysql-transaktion:commit og rollback

1) Alle ændringer, du foretager, er synlige inden for samme transaktion. Hvis du gør

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

dit output vil inkludere 'Hej der'. Men hvis du starter en anden database-forbindelse, vil den nye række ikke blive vist, før du foretager din transaktion fra den første forbindelse. Prøv at lege med dette ved at bruge to database-forbindelser ved hjælp af kommandolinjen.

Du kan ikke se effekten på dit websted, fordi du ikke kan have den samme transaktion inden for to database-forbindelser (en ny db-forbindelse vil blive oprettet i begyndelsen af ​​din anmodning).

2) Alle transaktioner, der ikke er forpligtet, vil blive rullet tilbage, når forbindelsen til databasen lukkes. Så hvis dette er dine to eneste spørgsmål, er der ingen forskel. Der er dog forskel på

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) Ja, disse er alle ens.



  1. MySQL fejl nr. 121

  2. Brug af MySQL-udløsere til at logge alle tabelændringer til en sekundær tabel

  3. Deltag i en optællingsforespørgsel på gener_series() og hent Null-værdier som '0'

  4. Sådan dropper du database ved at bruge TSQL og GUI - SQL Server / TSQL Tutorial Del 25