Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Vermeidung des gleichzeitigen Einfügens mehrerer gleicher IDs in mysql

Sie möchten eine Sequenz verwenden .

Zwei Vorbehalte:

  • Der AUTO_INCREMENT Die im Artikel beschriebene Funktion ist nicht standardmäßig und kann beim Wechsel zu einer anderen Datenbank zu Portabilitätsproblemen führen.

  • Wenn ein INSERT abgebrochen wird, wird immer noch eine Zahl aus der Sequenz verbraucht, so dass Sie am Ende Löcher in der Sequenz haben können. Wenn dies nicht akzeptabel ist, verwenden Sie eine automatisch generierte Sequenz für den Primärschlüssel (Ersatzschlüssel) und fügen Sie der "offiziellen" Sequenznummer eine separate Zuordnung dieses Schlüssels hinzu, um die Eindeutigkeit im Index dieser Tabelle zu erzwingen.

Die Alternative besteht darin, UNIQUE zu erzwingen ness in der Datenbank, verwenden Sie einen geeigneten TRANSACTION ISOLATION LEVEL und fügen Sie Anwendungslogik hinzu, um INSERT Fehler zu behandeln .