我正在编写一个web应用程序,它将向MySQL数据库表插入新记录。除了主键之外,大部分信息都是用户提供的,我希望使用Auto_Increment获取主键。当我从web应用程序运行以下查询时:

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为什么会返回空值?

最佳答案

您的键是主键,但未设置为自动递增。
请把你的桌子改成

ALTER TABLE `charlist`     CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;

关于php - 为什么Auto_Increment返回null?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24885535/

10-14 14:15
查看更多