2013-10-21 45 views
0

我有表有一些列,其中一个名为student_id有自动递增和主键。ID没有正确递增

但我的问题,当我从另一个表添加任何值到它,它会自动产生一些IDS

为更清晰:我的字段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具有:

如first_name(VARCHAR)

student具有:

student_id数据(INT)初级键AUTOIncrem耳鼻喉科

+0

显示“表13”和“学生”的表定义。 – hjpotter92

+0

该怎么做? – user2884425

+0

describe the table :) DESCRIBE'table 13' –

回答

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`) 
) 
1

的MySQL总是从最高值自动递增该字段曾经有过,即使该记录被删除或更改。如果你想要的ID从1开始了,使用这个命令(如@mihai在评论中说的):

ALTER TABLE tablename AUTO_INCREMENT = 1 

而且想想为什么你想让你的ID从1开始你在写你的软件依靠所有的ID是连续的,从1开始?这是一个坏主意 - 如果学生稍后退学会怎么样?

+0

这是正确的,但由于原始问题使用phpMyAdmin标记,因此还有一个很好的图形方法可以执行此操作:从操作选项卡查找AUTO_INCREMENT字段并在其中更改数字。另外,我同意你可能不想改变ID。 –

+0

谢谢你指出。 – octern