Я пишу веб-приложение, которое будет вставлять новые записи в таблицу базы данных MySQL. Большая часть информации предоставляется пользователю, за исключением первичного ключа, который я хочу получить, используя Auto_Increment. Когда я запускаю следующий запрос от моего веб-приложения:Почему Auto_Increment возвращает null?
SELECT Auto_Increment FROM information_schema.tables WHERE table_name='charlist';
Он ничего не возвращает - я проверил, храня результат запроса в переменной, а затем echo
ИНГ эту переменную, и ничего не выводилось. Я также использовал консоль MySQL, чтобы запустить этот запрос, и он вернулся в этом:
+----------------+
| Auto_Increment |
+----------------+
| NULL |
+----------------+
Моей таблица, безусловно, имеет поле первичного ключа, и имеет 5 записей с полем первичного ключа залитым Это структура. стол.
+----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | NULL | |
| bookIntroduced | int(11) | YES | | NULL | |
| pageIntroduced | int(11) | YES | | NULL | |
| title | varchar(50) | YES | | NULL | |
| forename | varchar(50) | YES | | NULL | |
| surname | varchar(50) | YES | | NULL | |
| oldSurname | varchar(50) | YES | | NULL | |
| alias | varchar(50) | YES | | NULL | |
| regnalNumber | varchar(5) | YES | | NULL | |
+----------------+-------------+------+-----+---------+-------+
И это несколько полей из 5 записей, уже находящихся в таблице.
+----+-----------+---------+
| id | forename | surname |
+----+-----------+---------+
| 1 | Waymar | Royce |
| 3 | Mance | Rayder |
| 4 | Gared | |
| 5 | Tristifer | Mudd |
| 6 | Edric | Dayne |
+----+-----------+---------+
Итак, почему Auto_Increment возвращает NULL, если в таблице есть допустимый первичный ключ?
Можно ли выбрать автоинкремент? – Synoon
Просто запустите в sql '' alter table 'charlist' change' id' 'id' INT (11) not null auto_increment;' или просто посмотреть @shahzad answer – ins0