Hallo,

ich würde da einfach fortlaufende Nummern nehmen (Bigint, das reicht bis zur Rente).
- Keytabelle anlegen mit Feldern Schemaname, Tablename, Keyfeld, Maxkey
- Standardfunktion
Bigint getKey/schema, Table)
erhöht maxkey um 1 und gibt maxkey zurück (exakt arbeiten mit Sperren, damit keine lock Konflikte entstehen)
wenn man blocken will, zählt man BlockSize drauf und gibt nächsten freien im Block zurück, bis Block erschöpft, dann wieder erhöhen.

mfg

Dieter Bender

PS: der Unterschied zu Autoinc ist auch, dass man den Key direkt kennt, unabhängig von Rekord Löffel Ekzem etc.


Zitat Zitat von Allrounder Beitrag anzeigen
Danke schon einmal für die Antworten.

@kuempi:
Wie Dieter Bender schon beantwortet hat, brauche ich eine eindeutige Referenz u.a. zur Verknüpfung mit anderen Tabellen.

@DBender:
Genau das war das Problem. Der Inhalt des Keyfeldes hat sich geändert und jetzt laufen wir Gefahr, doppelte Keys zu produzieren. Deshal die Umstellung auf eine ID ohne Inhalt.

Ich tendiere auch zur Key-Tabelle, wobei ich im Moment noch keinen Plan habe, wie ich die generierten IDs "feinkörnig" und wasserdicht vergebe. Datum/Zeit/Jobnummer reicht nicht aus, da mehrere IDs in der gleichen Sekunde benötigt werden.
Die Idee mit dem Pool von n IDs gefällt mir schonmal gut.

Ich mache mich mal an die Arbeit, bin aber für weitere Anregungen offen.