In einer Tabelle , wobei jede Zeile einen Zähler hat (nur ein ganzzahliger Wert ist ), muß ich den Stromwert zu erhalten und zu erhöhen es zugleich .
Eigentlich möchte ich das tun:
SELECT counter FROM table WHERE id=123
UPDATE table SET counter=counter+1 WHERE id=123
Dies als zwei Abfragen zu tun ist jedoch offensichtlich nicht threadsicher: Mehrere Prozesse, die dasselbe (in derselben Zeile) ausführen, erhalten möglicherweise denselben Zählerwert. Ich brauche sie alle einzigartig zu sein, so dass jeder Prozess die bekommen würde tatsächlichen aktuellen Wert und erhöhen sie um eins.
Ich kann mir eine Konstruktion vorstellen, bei der ich eine manuelle Sperre pro Zeile implementiere, aber ich frage mich, ob es einen einfacheren Weg gibt, dies zu tun.