[MySQL] Transactions ?

Pagina: 1
Acties:

  • crazyx
  • Registratie: Juli 2001
  • Laatst online: 06-05 23:10
Hallo,

In een eerdere thread gisteren werd me duidelijk gemaakt dat transactions niet ondersteund worden door MySQL.

Maar als ik dit lees : http://www.mysql.com/doc/en/COMMIT.html (manual MySQL) bljikt het dat er wel transactions mogelijk zijn als je autocommit afzet, en je moet rollback expliciet vermelden als dat nodig is (wat me ook logisch lijkt).

Maar het is me absoluut niet duidelijk wat er gebeurd als de server crasht, en de manual zegt er ook niks over.

Crazyx

PS: Ik heb gezocht naar eerdere threads over dit onderwerp in GoT, maar er werd niks gevonden.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Alleen tabellen met het InnoDB-type kunnen met transacties beschermd worden, dus als er een myisam, isam, bdb e.a. tabel tussen zit is die tabel niet beschermd.

Verder hoef je autocommit niet op off te zetten, als je maar je transactie begint met BEGIN, dan je code doet en dan een COMMIT (of indien gewenst ROLLBACK) doet.

Transactions staan overigens los van de instelling voor autocommit, dat is alleen maar een manier om elke query die niet expliciet in een transactie zit als een losse transactie te beschouwen.
En uiteraard wordt elke transactie die voor de servercrash was gecommit maar nog niet weggeschreven was opnieuw weggeschreven na de herstart en elke niet gecomitte transactie wordt weggegooid.

  • Commander Koen
  • Registratie: Juni 2003
  • Laatst online: 26-06-2025
Correctie op ACM: BDB tabbelen hebben wel ondersteuning voor transacties.
http://www.mysql.com/doc/en/ANSI_diff_Transactions.html

  • justin schlee
  • Registratie: September 2003
  • Laatst online: 12-12-2019
versie 5.0 ondersteund transacties als ik het goed heb, echter is deze nog in beta