2010-08-13 5 views
0

J'ai un champ appelé IntQID, qui est un ID pour chaque publication enregistrée dans la base de données SQL. Si un poste est 1533, le prochain entée sera 1534,1535, etc ...Comment modifier la position du compteur pour le champ SQL

J'ai récemment foiré et inséré une entrée manuelle avec un ID de 4000. Maintenant, le compteur a utilisé cela comme dernière entrée, donc maintenant nouveau publié sont 4001, 4002, 4003.

Comment puis-je changer le compteur pour revenir à l'utilisation de la ligne suivante après 1533?

Espérons que cela a du sens. Merci!

+0

Si vous faites cela, ne courez-vous pas le risque de collision avec 4000 à un moment donné dans le futur? Est-ce vraiment important de ne pas avoir de trous dans la séquence (la séquence est-elle significative pour quelque chose ou est-ce juste un identifiant)? – FrustratedWithFormsDesigner

+0

Comment mettez-vous à jour la valeur - est-ce par une instruction 'UPDATE', ou s'agit-il d'une colonne auto_increment? Et demandez-vous de réinitialiser toutes les valeurs pour corriger la séquence? –

+0

Il n'y a plus de 4000, j'ai mis à jour toutes les valeurs ... OMG - c'est une colonne auto_increment. J'ai mis à jour les valeurs qui étaient hors séquence, mais maintenant, à chaque fois qu'un article du site Web est inséré, il compte à partir de la gamme supérieure 4000 plutôt que de la gamme 1000 existante, où je l'aimerais – BigMike

Répondre

3

Pour définir la valeur auto_increment à 1533, utilisez:

ALTER TABLE tbl AUTO_INCREMENT = 1533; 

A ma connaissance, vous ne pouvez pas obtenir la valeur la plus élevée existant pour le mettre dans l'instruction ALTER TABLE sans utiliser au minimum deux requêtes.

+0

Donc, je changerais toute la table, pas seulement un champ spécifique? Mon nom de table est tblQA et le champ est IntQID, donc ALTER TABLE tblQA AUTO_INCREMENT = 1533? – BigMike

+0

@BigMike: Cela n'affecte que le champ auto_increment - quel que soit le nom de la colonne, car MySQL n'autorise qu'une seule colonne auto_increment par table. –

+0

Parfait - fonctionne! Merci tout le monde – BigMike

1

ALTER TABLE tbl AUTO_INCREMENT = 1000;

+0

+1: Ceci est valide, réglage la valeur auto_increment est arbitraire. Pour moi, de toute façon ... –

Questions connexes