Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich Oracle-Sequenzlücken in der Primärschlüsselspalte wiederverwenden?

Meinen Sie, wird die Sequenz jemals einen Wert zurückgeben, der sich in einem "Lücken" -Bereich befindet? Ich glaube nicht, es sei denn, Sie löschen / erstellen es aus irgendeinem Grund neu. Ich denke, Sie könnten eine Art Funktion schreiben, um die PK-Lücken in Ihrer Tabelle zu finden, diese Lückenbereiche dann in einer anderen Tabelle speichern und Ihre eigene Sequenzfunktion mithilfe der Lückentabelle "rollen". Sehr hässlich. Der Versuch, diese Lücken zu "wiederherstellen", klingt nur nach einem verzweifelten Versuch, das Unvermeidliche zu vermeiden - Ihr Java-PK-Datentyp sollte mit dem DB-Datentyp übereinstimmen. Ich hatte vor langer Zeit das gleiche Problem mit einer VB-App, bei der ein Klassenschlüssel als 16-Bit-Ganzzahl definiert war und die Sequenz 32 KB überschritten hatte, musste die Variablen in Long ändern. Ich sage, beißen Sie in den sauren Apfel und nehmen Sie die Konvertierung vor. Ein wenig Schmerz jetzt, wird dir später viel andauernden Schmerz ersparen. Nur meine Meinung.