2013-10-21 81 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