MySQL InnoDB: Nicht-Primärschlüssel automatisch inkrementieren
In MySQL InnoDB ist es möglich, einen Nicht-Primärschlüssel automatisch zu inkrementieren Dies wird jedoch im Allgemeinen nicht empfohlen.
Frage:
Ist es möglich, einen nicht-primären Schlüssel, insbesondere die Spalte „comment_id“ in den book_comments, automatisch zu erhöhen? Tabelle?
Alternativen:
Der Fragesteller schlägt zwei Alternativen zur Verwendung eines automatisch inkrementierenden Nicht-Primärschlüssels vor:
Allerdings , diese Alternativen haben Nachteile, wie z. B. einen unnötigen Index-Overhead oder eine deutliche Vergrößerung der Tabellengröße.
Antwort:
Ja, es ist möglich, einen nicht-primären Index automatisch zu erhöhen Schlüssel, indem Sie einen Index für diese Spalte erstellen. Das folgende Beispiel erstellt eine Tabelle mit einer automatisch inkrementierenden testInc-Spalte:
<code class="sql">CREATE TABLE `test` ( `testID` int(11) NOT NULL, `string` varchar(45) DEFAULT NULL, `testInc` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`testID`), KEY `testInc` (`testInc`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;</code>
Experten raten jedoch dringend von dieser Vorgehensweise ab. Ein geeigneterer Ansatz besteht darin, comment_id zum Primärschlüssel zu machen und die Integrität durch einen eindeutigen Index für (book_id, timestamp, user_id) zu erzwingen. Dieser Ansatz stellt einen geeigneten Primärschlüssel für die Tabelle bereit und folgt dem Prinzip der geringsten Überraschung.
Das obige ist der detaillierte Inhalt vonKann ich einen Nicht-Primärschlüssel in MySQL InnoDB automatisch erhöhen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!