Einzelnen Beitrag anzeigen

Benutzerbild von Marcel Gascoyne
Marcel Gascoyne

Registriert seit: 18. Nov 2003
Ort: Uetersen
271 Beiträge
 
Delphi 2005 Architect
 
#2

Re: Dantensätze mit mySQL locken

  Alt 28. Jan 2005, 16:56
MySQL braucht eigentlich kein Locking, obwohl es keine Transaktionen kennt (zumindest die Standard Tabellen können keine; mit InnoDB sieht das schon anders aus). MySQL arbeitet mit Lese- und Schreibthreads und macht Table Locking (siehe auch diesen Artikel).

Du kannst das Problem auch lösen indem Du einen Versionszähler in Deine Tabelle einbaust:

SQL-Code:
create table kunde (
  id integer not null,
  version integer not null default 1,
  name varchar(60)
)
Bei einem INSERT wird die Version auf 1 gesetzt, bei einem UPDATE machst Du das einfach so:

SQL-Code:
update kunde
set name="Neuer Name"
where id = 100
and version = 1
Dadurch das Du immer auf eine bestimmte Version prüfst kannst Du Konflikte mit anderen Anwendungen vermeiden.

Gruß,
Marcel
Marcel Gascoyne
Der Fehler sitzt immer vor der Tastatur
  Mit Zitat antworten Zitat