Lou*_*Lou 2 php mysql sql auto-increment
我正在编写一个 Web 应用程序,它将向 MySQL 数据库表中插入新记录。大多数信息都是用户提供的,除了主键,我想使用 Auto_Increment 获取主键。当我从 Web 应用程序运行以下查询时:
SELECT Auto_Increment FROM information_schema.tables WHERE table_name='charlist';
Run Code Online (Sandbox Code Playgroud)
它不返回任何内容 - 我通过将查询结果存储在变量中然后echo对该变量进行检查,但没有输出任何内容。我还使用 MySQL 控制台运行此查询,它返回以下内容:
+----------------+
| Auto_Increment |
+----------------+
| NULL |
+----------------+
Run Code Online (Sandbox Code Playgroud)
我的表肯定有主键字段,并且有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 | |
+----------------+-------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
这是表中已有的 5 条记录的几个字段。
+----+-----------+---------+
| id | forename | surname |
+----+-----------+---------+
| 1 | Waymar | Royce |
| 3 | Mance | Rayder |
| 4 | Gared | |
| 5 | Tristifer | Mudd |
| 6 | Edric | Dayne |
+----+-----------+---------+
Run Code Online (Sandbox Code Playgroud)
那么,当表中存在具有有效主键的记录时,为什么 Auto_Increment 会返回 NULL?
小智 5
您的键是主键,但未设置为自动增量。请更改您的表格,例如
ALTER TABLE `charlist` CHANGE `id` `id` INT(11) NOT NULL AUTO_INCREMENT ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4387 次 |
| 最近记录: |