2010-12-08 46 views
0

Je crée une nouvelle table à partir de zéro via le script - tout d'abord, je la dépose (si elle existe déjà):Problème MySQL: autoID ne commençant pas par 1

DROP TABLE IF EXISTS `myTable` 

puis je la crée:

CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
... and so on 
CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
... and so on 
problème: pour une raison étrange, mon autoID-field ALWAYS starts at 2028 instead of 1, bien que je le génère à partir de zéro. Qu'est-ce qui ne va pas?

+0

Vous n'êtes pas sûr de la réponse, mais vous n'avez pas besoin de vérifier si la table existe si vous l'avez supprimée avant la commande. Ce sera toujours vrai. Au lieu d'envelopper la partie drop table si un si vous ne pouvez pas déposer la goutte si elle n'existe pas et essayer d'élever une erreur. –

+0

Est-ce que la valeur de l'ID commence vraiment? – Tenner

Répondre

4

Examinez la fin du bloc de création. Vous avez probablement quelque chose comme AUTO_INCREMENT=2028. Si tel est le cas il suffit de mettre AUTO_INCREMENT=1 à la fin de créer bloc de table

tels que

CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
... 
) ENGINE=xxx AUTO_INCREMENT=1; 
1
CREATE TABLE IF NOT EXISTS `myTable` (
`id` int(11) NOT NULL AUTO_INCREMENT, 
PRIMARY KEY (id)); 

S'il vous plaît ajouter la clé primaire

0

Vous pouvez le mettre à jour en modifiant la table

ALTER TABLE <tablename> AUTO_INCREMENT = 1;