Ich benutze SQL Server und wenn ich eine neue Tabelle erstellen, mache ich ein spezifisches Feld ein Autoinkrement Primärschlüssel. Das Problem ist, dass einige Leute mir gesagt haben, dass das Feld ein automatisches Inkrement für den Primärschlüssel bedeutet, wenn man einen Datensatz löscht (sie interessieren sich nicht für die Autoinkrementierungsfeldnummer), das Feld erhöht sich also irgendwann - wenn der Typ meines Feldes ist Integer zum Beispiel - der Bereich von Integer wird total verbraucht und ich werde in Schwierigkeiten geraten. Also sagen sie mir, dass ich dieses Feature nicht mehr benutzen soll.Auto-Inkrement-Funktion in der Datenbank
Die beste Lösung ist, dies durch den Code zu machen, indem ich das Maximum meines Primärschlüssels erhalte. Wenn der Wert dann nicht existiert, ist das Maximum 1
anders weise max + 1
.
Haben Sie Vorschläge zu diesem Problem? Kann ich die Autoinkrementierungsfunktion verwenden?
ich auch die Fälle wissen will, was nicht bevorzugt ist Autoinkrement zu verwenden, um die Alternativen ..und ...
Note :: diese Frage allgemein zu allen DBMS nicht spezifisch, ich will ist, dies wissen true auch für DBMS wie ORACLE, Mysql, INFORMIX, ....
Vielen Dank.
Nun, was ist das Problem, wenn es "Löcher" in der Reihenfolge der PK-Nummern gibt? Wen interessiert das? – zerkms
gehen Sie für UniqueIdentifier :) –
@Serkan - das ist ein Phantom-Problem, siehe Argumente unten für warum das Problem nicht existiert. "UniqueIdentifier" sollte damit sicherlich nicht als Motivation genutzt werden. Es ist ein 16-Byte-Wert, der viermal mehr Speicherplatz verbraucht als ein "int", was in den allermeisten Fällen akzeptabel ist, und doppelt so viel wie ein 'bigint', der fast immer akzeptabel ist, aber normalerweise nicht notwendig ist. –