Heim  >  Artikel  >  Datenbank  >  Wie inkrementiere ich nicht-primäre Schlüssel in MySQL InnoDB automatisch?

Wie inkrementiere ich nicht-primäre Schlüssel in MySQL InnoDB automatisch?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 01:47:29852Durchsuche

How to Auto-Increment Non-Primary Keys in MySQL InnoDB?

MySQL InnoDB: Nicht-Primärschlüssel automatisch inkrementieren

Die InnoDB-Speicher-Engine von MySQL ermöglicht die automatische Inkrementierung von Werten für Primärschlüssel. Allerdings wird die automatische Inkrementierung von Nicht-Primärschlüsseln nicht direkt unterstützt.

Spezifische Frage: Tabellenstruktur

Beachten Sie die folgende Tabellenstruktur für „book_comments“:

book_id     medium_int
timestamp   medium_int
user_id     medium_int
vote_up     small_int
vote_down   small_int
comment     text
comment_id  medium_int

Ist die automatische Inkrementierung von Nicht-Primärschlüsseln möglich?

Ja, es ist möglich, einen Nicht-Primärschlüssel automatisch zu inkrementieren. Es erfordert jedoch die Erstellung eines Index für die Spalte, die automatisch inkrementiert werden soll.

Empfohlene Lösung

Trotz der Möglichkeit der automatischen Inkrementierung von Nicht-Primärschlüsseln wird die empfohlene Lösung empfohlen Die Lösung besteht darin, „comment_id“ zum Primärschlüssel zu machen und aus Gründen der Datenintegrität einen eindeutigen Index für die Kombination aus „book_id“, „timestamp“ und „user_id“ zu erstellen.

Zusätzliche Überlegungen

Die in der Frage erwähnten alternativen Vorschläge haben Nachteile:

  • „comment_id“ zum Primärschlüssel machen und einen eindeutigen Index erstellen: Diese Lösung führt einen zusätzlichen Index ein , was möglicherweise nicht wünschenswert ist.
  • Ersetzen von „comment_id“ durch den Primärschlüssel in „book_comments_votes“: Dadurch wird die Größe von „book_comments_votes“ erheblich erhöht und kann sich auf die Leistung auswirken.

Daher besteht die effizienteste und robusteste Lösung darin, dem empfohlenen Ansatz zu folgen, „comment_id“ als Primärschlüssel zu verwenden und einen eindeutigen Index für „book_id“, „timestamp“ und „user_id“ zu erstellen.

Das obige ist der detaillierte Inhalt vonWie inkrementiere ich nicht-primäre Schlüssel in MySQL InnoDB automatisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn