Wenn die automatische Inkrementierung für Ihre Anforderungen nicht gut genug ist, können Sie mit n einen atomaren Sequenzmechanismus erstellen benannte Sequenzen wie folgt:
Erstellen Sie eine Tabelle zum Speichern Ihrer Sequenzen:
CREATE TABLE sequence (
seq_name varchar(20) unique not null,
seq_current unsigned int not null
);
Angenommen, Sie haben eine Zeile für 'foo' in der Tabelle, können Sie die nächste Sequenz-ID atomar wie folgt erhalten:
UPDATE sequence SET seq_current = (@next := seq_current + 1) WHERE seq_name = 'foo';
SELECT @next;
Keine Schlösser erforderlich. Beide Anweisungen müssen in derselben Sitzung ausgeführt werden, damit die lokale Variable @next tatsächlich definiert ist, wenn die Auswahl erfolgt.