Heim >Datenbank >MySQL-Tutorial >Kann eine Nicht-Primärschlüsselspalte in MySQL InnoDB automatisch inkrementiert werden?
Es ist möglich, eine Nicht-Primärschlüsselspalte in MySQL InnoDB automatisch zu inkrementieren. Dies kann durch Erstellen eines Index für die Spalte erreicht werden.
Um im gegebenen Beispiel die Spalte „comment_id“ in der Tabelle „book_comments“ automatisch zu erhöhen, führen Sie die folgenden Schritte aus:
<code class="sql">CREATE TABLE book_comments ( book_id mediumint, timestamp mediumint, user_id mediumint, vote_up smallint, vote_down smallint, comment text, comment_id mediumint, PRIMARY KEY (book_id, timestamp, user_id), INDEX id (comment_id) );</code>
Hinzufügen der INDEX auf comment_id ermöglicht das automatische Inkrementierungsverhalten und stellt gleichzeitig sicher, dass der entsprechende Index von InnoDB verwaltet wird. Der ID-Indexname kann nach Bedarf angepasst werden.
Für die Tabelle book_comments_votes wird empfohlen, den gesamten Primärschlüssel von book_comments als Fremdschlüssel zu verwenden, um referenzielle Integrität zu erzwingen und Duplikate zu vermeiden.
While Wenn Sie „comment_id“ zum Primärschlüssel machen und die Integrität durch einen eindeutigen Index für „book_id“, „timestamp“ und „user_id“ erzwingen, ist dies konzeptionell machbar. Es gilt jedoch allgemein als bewährte Vorgehensweise, für jede Tabelle einen eindeutigen Primärschlüssel zu haben. Dies gewährleistet eine konsistente und zuverlässige Datenabfrage und -pflege.
Das obige ist der detaillierte Inhalt vonKann eine Nicht-Primärschlüsselspalte in MySQL InnoDB automatisch inkrementiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!