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

Automatisk tilbagerulning, hvis COMMIT TRANSACTION ikke nås

Nej, transaktioner rulles ikke tilbage, så snart der opstår en fejl. Men du bruger muligvis en klientapplikation, der anvender denne politik.

For eksempel, hvis du bruger mysql-kommandolinjeklienten, stopper den normalt med at udføre, når der opstår en fejl, og vil afslutte. Hvis du afslutter, mens en transaktion er i gang, bliver den rullet tilbage.

Når du skriver din egen ansøgning, kan du kontrollere politikken ved tilbagerulning, men der er nogle undtagelser:

  • Hvis du afslutter (dvs. afbryde forbindelsen til databasen) rulles en igangværende transaktion altid tilbage
  • En deadlock eller lock-vent timeout forårsager implicit en rollback

Bortset fra disse betingelser, hvis du påkalder en kommando, der genererer en fejl, returneres fejlen som normalt, og du er fri til at gøre, hvad du vil, herunder at udføre transaktionen alligevel.



  1. Hvordan REGEXP virker i MariaDB

  2. Hvordan opretter man en MySQL hierarkisk rekursiv forespørgsel?

  3. Sådan migreres fra Oracle DB til MariaDB

  4. Sådan afsluttes PostgreSQLs Command Line Utility (psql)