ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
402
402
EMPFEHLEN
-
Hallo zusammen,
ich versuche gerade, in MySQL Transaktionen und Sperrmechanismen zu nutzen. Ich stehe nun vor folgendem Problem:
In einem Browserfenster bzw. Tab habe ich über meine kleine PHP-Anwendung einen Datensatz zum Ändern selektiert
Damit dachte ich aus meinen bisherigen Recherchen, sei ein Datensatz bei einer InnoDB-Tabelle mit einer S-Sperre versehen, weswegen er nicht geändert werden kann. Also phpMyAdmin gestartet und denselben Datensatz angefasst:Code :1
SELECT * FROM fieldcat WHERE lfdnr = '1' LOCK IN SHARE MODE;
Ich erwartete eine Fehlermeldung von phpMyAdmin, bekam aber keine. Ein Refresh des Browsers zeigte mir dann auch, dass die Änderung durchgeführt wurde. Ich hatte hier aber erwartet, dass durch die S-Sperre genau dies nicht möglich ist.Code :1
UPDATE fieldcat SET readonly = '1' WHERE lfdnr = '1';
Also habe ich es damit versucht, in dem ich eine Transaktion gestartet habe.
Ich habe wieder den Datensatz mit dem UPDATE-Statement angefasst und wieder keine Fehlermeldung erhalten, obwohl ich die Transaktion nicht explizit committed hatte.Code :1 2 3
SET AUTOCOMMIT = 0; START TRANSACTION; SELECT * FROM fieldcat WHERE lfdnr='1' IN SHARE MODE;
Mache ich etwas falsch oder habe ich die Funktionsweise der Sperren und Transaktionen bei InnoDB-Tabellen nicht richtig verstanden?
Ich will nochmal kurz zusammenfassen, was ich machen möchte:
Ich möchte einen Datensatz über meine Weboberfläche selektieren und bei dieser Selektion bereits die Sperre in der Datenbank setzen, sodass andere Benutzer nur noch lesend zugreifen können. Dies würde ich jedoch gern mit den in MySQL eingebauten Mechanismen erreichen.
Danke schonmal für eure Hilfe.
-
26.02.10 22:18 #2
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
laut:
http://lists.mysql.com/mysql-de/1224
http://lists.mysql.com/mysql-de/1223
http://dev.mysql.com/doc/refman/5.0/...ing-reads.html
funktioniert das mit InnoDB nur wenn auf der Tabelle ein Primärschlüssel definiert ist und dieser
verwendet wird in der select for ... verwendet wird.
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
Ähnliche Themen
-
Checkbox setzen und sperren
Von Thomas_Jung im Forum Javascript & AjaxAntworten: 6Letzter Beitrag: 01.12.09, 10:56 -
Ordnerrechte richtig setzen!
Von QUEST08 im Forum PHPAntworten: 3Letzter Beitrag: 13.08.08, 09:04 -
if Befehl richtig setzen.
Von PHP-Fan im Forum PHPAntworten: 3Letzter Beitrag: 25.10.05, 07:54 -
Quellpunkt richtig setzen ( Kopierstempel )
Von Heizemusik im Forum PhotoshopAntworten: 2Letzter Beitrag: 23.08.05, 12:42 -
Chmod richtig setzen?
Von StefanR im Forum PHPAntworten: 8Letzter Beitrag: 30.01.04, 17:09





Zitieren

Login





