Mysql
 sql >> Base de données >  >> RDS >> Mysql

Insérer dans un champ d'incrémentation automatique

Ok, avant que vous obteniez la réponse à votre question, je dois vous avertir de extrêmement mauvaise pratique que vous essayez de faire là. Ne vous méprenez pas, beaucoup ont essayé de faire ce que vous faites et ce n'est tout simplement pas la façon dont les choses devraient fonctionner.

Votre ID auto_incrémenté est une clé primaire. La clé primaire est utilisée pour identifier de manière unique une ligne dans une table. C'est ça. Il n'a pas d'autre signification particulière que celle-là.

Alors, qu'est-ce que ça signifie pour vous? Cela signifie que votre idée de "réserver" 1 à 10 000 pour les administrateurs est mauvaise. Pourquoi est-ce mauvais? Parce que vous falsifiez la clé primaire. Vous ne devriez jamais décider quelle devrait être la valeur de la clé primaire, c'est le travail des bases de données pour de nombreuses raisons (cohérence par exemple). L'autre chose pour laquelle c'est mauvais, c'est que vous avez limité quelqu'un à seulement 10 000 entrées possibles. allez-vous calculer quelle est la prochaine entrée pour les administrateurs ? Que se passe-t-il si vous avez entré 1, 2, 3, 4 et que vous supprimez ensuite l'entrée avec ID =3 ? Que se passe-t-il alors ? Quelle est votre prochaine valeur de séquence ? 3 ou 5 ?

Cela dit, vous devriez probablement repenser votre stratégie. Pourquoi ne pas ajouter un champ "isAdmin" qui vous dira si un admin a posté quelque chose ou non ?