Zum Hauptinhalt springen

SQLite

Sequenz Behandlung im Multiprozess Betrieb (SQLite)

Wenn die aktuellen Sequenzen mit mehreren verschiedenen Prozessen benutzt werden, zum Beispiel MapEdit Desktop (.net IIS) und MapEdit Mobile (Java). Dann kann es im Extremfall Kollisionen geben (sprich es werden FIDS mehrfach vergeben und sind nicht mehr eindeutig) Das tritt aber nur auf wenn sehr viele Anwender gleichzeitig Datensaetze einfügen.

Bitte Beachten

Ab Rel 23.1 wurde folgender SQL in das Backend eingebaut:

INSERT INTO TB_SEQUENCE_EMULATION (SEQUENCE_NAME,NEXT_VALUE) VALUES ('SB',1)
ON CONFLICT DO UPDATE SET NEXT_VALUE=NEXT_VALUE+1
RETURNING NEXT_VALUE

Es fügt entweder 1 als initialen Wert ein oder macht ein UPDATE und liefert den entsprechenden Wert zurück. Das ganze läuft dann im Backend außerhalb der aktuellen Transaktion und funktioniert wie eine Sequenz.