Thread Script wird doppelt ausgeführt?!
(8 answers)
Opened by Gast at 2007-08-20 12:02
das erhöhen der rechnungsnummer muss auf jeden fall atomar passieren.
du sagst leider nichts darüber, wie du die nummer erhöhst, ob du transaktionen benutzt oder nicht etc. szenario: prozess P1 liest rechungsnummer 123. prozess P2 liest rechnungsnummer 123. P1 verschickt rechnung und schreibt 124 in die datenbank. P2 verschickt rechnung und schreibt auch 124 in die datenbank. lösung: wenn keine anderen daten davon abghängig sind, erhöhe die nummer folgendermassen: [sql]UPDATE foo set rechnungsnummer = rechnungsnummer + 1 where ...[/sql] das ist eine atomare operation. ansonsten musst du InnoDB benutzen und transaktionen. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |