tbee's page
   home  work  myself  mixed  guestbook  
   
      INHALT MySQL Transaktionen mit InnoDB Tabellen in Mysql

Wer mir was gutes tun will kauft über diesen Link bei Amazon ein !

Transaktionen mit InnoDB Tabellen in Mysql

Unter Transaktionen versteht man die Bündelung von mehreren Datenbankoperationen die in einem Mehrbenutzersystem (wie MySQL) ohne unererwünschte Einflüsse anderer Datenbankoperationen als eine Einheit ausgeführt werden.

Eine Transaktion hat folgende Eigenschaften:

  • Atomicity
    Sie ist nicht weiter zerlegbar
  • Consitency
    Nach dem Beenden einer Transaktion hinterlässt sie einen konsistentet Datenbasis
  • Isolation
    parallel ausgeführte ransaktionen beinflussen sich nicht gegenseitig
  • Durability
    Die Wirkung einer abgeschlossen Transaktion muss in der DB bleiben
MySQL kann nur mit dem InnoDB Tabellen Typ Transaktionen durchführen. Eine Transaktion wird mit:
  • Begin eingeleitet.
  • Mit Comit abgeschlossen.
  • Mit Rollback verworfen.
  • Mit Hilfe von SET wird Autocomit abgeschaltet. SET AUTOCOMIT = 0
  • Ebenso kann mit SET der sog. Transaction Level gesetzt werden. Über diesen kann die Isolation der Datensätze festgelegt werden, dh. Wie weit Read/Update etc. das Locking der DB beeinflussen.  
                SET [SESSION | GLOBAL] TRANSACTION ISOLATION LEVEL
                   {READ UNCOMMITTED | READ COMMITTED| REPEATABLE READ | SERIALIZABLE}

Sperren von Tabellen

In allen Tabellentypen bietet MySQL noch die Möglichkeit komplette Tabellen und nicht nur Datensätze zu sperren. D.h. ein Prozess kann eine Tabelle für andere Prozesse sperren, so das nur dieser Daten Manipulieren kann.

Die Sperrung erfolgt mittels: LOCK TABLES tbl_name {READ | [READ LOCAL]
Die Freigabe mittels UNLOCK TABLES

Foreign Keys bei Mysql Weitere MySQL Tools

 

Druckerversion     [valid html 4.01]      [english]
style: blauer Stylegelber Styleroter Stylegruener StyleStandard Style
© 2001 by  tbee / Impressum last update at: 14.05. 2003 22:05:05
url: www.tbee.de/mysql/t5_mysql_transaktionen.php