0

我的表有一些列,其中一个称为student_id具有自动增量和主键。

但是我的问题是当我从另一个表中添加任何值时它会自动生成一些 id

为了更清楚:我的字段student_id有值 1 2 3 4 5

但是当我向它添加新值时,它从 15 和 16 开始,依此类推。

是否有任何缓存或类似的东西?

我在用着 :

 INSERT INTO student(first_name,school_id,class_id,stage_id,grade_id)
 SELECT first_name, 1,1,1,1 FROM `TABLE 13`

表 13 有:

名字(varchar)

student有 :

student_id (INT) 主键 AUTOIncrement

4

2 回答 2

1

MySQL 总是从该字段中的最高值自动递增,即使该记录已被删除或更改。如果您希望 ID 从 1 开始,请使用此命令(正如@mihai 在评论中所说):

ALTER TABLE tablename AUTO_INCREMENT = 1

还要考虑为什么您希望您的 ID 从 1 开始。您是否正在编写软件以依赖所有连续的 ID 并从 1 开始?这是个坏主意——如果学生后来辍学怎么办?

于 2013-10-21T02:01:31.087 回答
0

试试这个......如果它适合你的问题,别忘了检查它......

CREATE TABLE `student` (
    `first_name` VARCHAR(50) NULL DEFAULT NULL,
    `school_id` INT(11) NOT NULL AUTO_INCREMENT,
    `class_id` INT(11) NOT NULL,
    `stage_id` INT(11) NOT NULL,
    `grade_id` INT(11) NOT NULL,
    PRIMARY KEY (`school_id`)
)
于 2013-10-21T01:50:20.603 回答