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:
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!