Wie generieren Sie eindeutige positive Lange mit der UUID

Habe ich eine Anforderung zum generieren eindeutiger Langen ids für meine Datenbank primary key-Spalte.

Ich dachte, dass ich verwenden können, UUID.randomUUID().getMostSignificantBits() aber manchmal generieren einige negative lange auch das ist ein problem für mich.

Ist es möglich, erzeugen nur positive langen von der UUID ?Es werden wie Milliarden Einträge, so ich will, dass jeder generierte Schlüssel muss eindeutig sein.

  • Warum sind Sie nicht Folge? Sind Sie in der Lage, Dinge wie das? Oder UUID ist dies eine Lösung, die Sie haben zu verwenden?
  • können Sie erklären, mehr über die Reihenfolge
  • Welche DB verwendest du? Was db-framework Sie verwenden(JDBC, Hibernate, myBatis)?
  • Bitte Lesen Sie über PostgreSQL sequence neilconway.org/docs/sequences. Dies ist nur ein Beispiel. In Ihrer Datenbank sollten Sie fein etwas ähnlich.
  • Ich bin mit mysql. Ich will es tun, in der Anwendung die Seite, weil, wenn ich es in der Datenbank Seite feuere ich eine weitere Abfrage erneut, um die id der Zeile..und ich möchte vermeiden, dass
  • Warum denkst du, MostSignificantBits der UUID wird einzigartig sein? Die UUID ist einzigartig, aber nicht unbedingt die MostSignificantBits der UUID.
  • ja u sind Recht user93353 . ich habe gerade überprüft die java-docs auf der UUID.
  • Dieses Szenario wird mehr überzeugend, wenn Ihre Anwendung ist Datenbank-agnostisch und Sie haben für die Verwaltung Ihrer eigenen Reihenfolge. Halten Sie den primären Schlüssel als einen uuid-string mit Abstand möglicherweise nicht so effizient im Vergleich zu einer Anzahl
  • Die meisten Datenbanken, die ich benutzt habe(einschließlich MySQL) werden Sie wieder die ID, die generiert wurde, für das neu eingefügte Element auf die insert-Methode, dh: die insert-Methode gibt eine lange, die die ID des Elements, das eingefügt wurde, ebenso, wenn Sie legen Sie eine Liste der Elemente, die es gibt eine Liste von longs mit passenden Indizes der Liste eingefügt wurde

Schreibe einen Kommentar