Heim >Datenbank >MySQL-Tutorial >Wie können wir sagen, dass AUTO_INCRMENT in MySQL Vorrang vor PRIMARY KEY hat?
Dies kann anhand eines Beispiels verstanden werden, bei dem ein NULL-Wert in die Spalte AUTO_INCREMENT eingefügt wurde und MySQL die neue Sequenznummer bereitstellt.
mysql> Create table employeeinfo(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Name Varchar(10)); Query OK, 0 rows affected (0.16 sec) mysql> Insert into employeeinfo(id, Name) values(NULL, 'Saurabh'); Query OK, 1 row affected (0.07 sec) mysql> Select * from employeeinfo; +----+---------+ | id | Name | +----+---------+ | 1 | Saurabh | +----+---------+ 1 row in set (0.00 sec)
Aus dem obigen Beispiel können wir sehen, dass die Spalte „id“ zusammen mit dem PRIMARY KEY-Bit als NOT NULL deklariert wurde, sie aber weiterhin NULL-Werte akzeptiert. Dies liegt daran, dass die Spalte „id“ auch als AUTO_INCRMENT deklariert wurde. Selbst wenn wir also einen NULL-Wert in diese Spalte einfügen, gibt MySQL die Sequenznummer zurück.
Wenn wir dagegen versuchen, NULL in eine Spalte einzufügen, die als PRIMARY KEY, aber nicht als AUTO_INCRMENT deklariert ist, dann gibt MySQL einen Fehler wie folgt zurück:
mysql> create table people(id INT primary key, name varchar(10)); Query OK, 0 rows affected (0.18 sec) mysql> Insert into people(id, name) values(NULL, 'Rahul'); ERROR 1048 (23000): Column 'id' cannot be null
Daher können wir sagen, dass AUTO_INCRMENT Vorrang vor PRIMARY KEY hat Einschränkung, da in jedem Fall Prozeduren unter AUTO_INCRMENT früher aufgelöst werden müssen, um die PRIMARY KEY-Einschränkung zu überprüfen.
Das obige ist der detaillierte Inhalt vonWie können wir sagen, dass AUTO_INCRMENT in MySQL Vorrang vor PRIMARY KEY hat?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!