Tom: Mysql: Tabelle sperren

Beitrag lesen

Hello,

Ist es richtig, wenn ich mit "LOCK tabelle; UPDATE tabelle; UNLOCK tabelle;" vorgehe?

Kann man so machen.

kommt darauf an, ob innerhalb _eines_ Requests gelesen und geschrieben wird, oder ob der Vorgang auf zwei oder mehr verteilt ist.

Man muss die Tebelle nicht sperren. Man muss sich nur merken, ob die Auswahl für den Tag schon stattgefunden hat. Dieses Kriterium kann man dann auch in die Abfrage einsetzen.

Dazu müsste die Tabelle dann eine Spalte für das Auswahldatum des Bildes haben.

Beim Schreiben stellt man dann fest, ob die Tabelle schon einen Datensatz mit dem aktuellen Datum enthält. Wenn ja, wird das Update nicht durchgeführt, wenn nein, darf es durchgeführt werden und das Datum wird aktualisiert.

Der erste, der schreibt, gewinnt dann. Das muss allerdings nicht der erste sein, der gelesen hat.

Und wenn man die Date-Spalte mit einem Unique-Index belegt, würde jeder weitere Updateversuch mit demselben Datum abgelehnt werden.

Vermutlich wird es aber konzeptionell sowieso besser sein, sowieso zwei Tabellen zu bentzen, eine für die Stammdaten und eine für die Bewegungsdaten.

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bergpost.annerschbarrich.de