web-dev-qa-db-fra.com

Incrémentation automatique dans phpmyadmin

J'ai une base de données existante utilisant PHP, MySQL et phpMyAdmin.

Lorsque les utilisateurs deviennent membres de mon site Web, j'ai besoin que le système leur crée un numéro de membre unique à l'aide d'un numéro à cinq chiffres. par exemple 83773. Je suppose que cela revient à générer un mot de passe aléatoire, sauf que je ne veux que des chiffres pour mes membres. Ce numéro d'identification doit être unique pour chaque membre.

Est-il possible pour moi de définir la clé primaire sur auto_increment dans ma table utilisateur, de la définir à 10000, puis à l'incrémentation automatique chaque fois qu'un membre s'enregistre?

De plus, y a-t-il un nombre maximal d'ID de clé primaire?

S'agit-il d'un moyen fiable et sûr d'utiliser le numéro d'identification de clé primaire en tant que numéro de membre?

82
JaYwzx Wong

Il y a des étapes pour créer une incrémentation automatique pour une colonne. Je suppose que la version de phpMyAdmin est 3.5.5 mais pas certaine.

Cliquez sur Tableau > Structure onglet> Sous Action cliquez sur Changer dans la fenêtre de ppoup, faites défiler vers la gauche et vérifiez A_I. Assurez-vous également que vous avez sélectionné Aucun pour Par défautenter image description here

182
Amit Bhagat

Dans phpMyAdmin, accédez à la table en question et cliquez sur l'onglet "Opérations". Sur la gauche, sous Options de la table, vous serez autorisé à définir la valeur actuelle de AUTO_INCREMENT.

51
Mala

Il suffit d’exécuter une simple requête MySQL et de définir le nombre d’incréments automatiques comme vous le souhaitez.

ALTER TABLE `table_name` AUTO_INCREMENT=10000

Pour ce qui est du maximum, autant que je sache, il n’en existe pas et il n’existe aucun moyen de limiter ce nombre.

Il est parfaitement sûr et pratique courante de définir un numéro d'identification comme clé primaire, incrémentation automatique, int. Il existe des alternatives telles que l’utilisation de PHP pour générer des numéros d’adhésion dans un format spécifique, puis vérifier que le numéro n’existe pas avant l’insertion. moi personnellement J'irais avec la valeur primaire id auto_inc.

20
lethalMango
  1. Dans l'onglet "Structure" de votre tableau
  2. Cliquez sur le crayon de la variable que vous voulez auto_increment
  3. sous l'onglet "Extra", choisissez "auto_increment"
  4. puis allez dans l'onglet "Opérations" de votre tableau
  5. Sous "Options de table" -> type auto_increment -> 10000
7
Phil

Dans phpMyAdmin, si vous configurez un champ de votre table pour l'incrémentation automatique, puis insérez une ligne et définissez la valeur de ce champ sur 10 000, il continuera à partir de ce point.

2
Tim

@AmitKB, votre procédure est correcte. Bien que cette erreur

Erreur de requête: # 1075 - Définition de table incorrecte; il ne peut y avoir qu'une seule colonne automatique et elle doit être définie comme une clé

peut être résolu en marquant d’abord le champ comme clé (en utilisant l’icône de clé avec l’étiquette primaire), à ​​moins que vous n’ayez une autre clé, elle risque de ne pas fonctionner.

2
KE Keronei

Cela est dû aux tables wp_terms, wp_termmeta et wp_term_taxonomy, dont tous les identifiants ne sont pas définis sur AUTO_INCREMENT.

Pour cela, allez dans phpmyadmin, cliquez sur la base de données concernée, la table wp_terms, cliquez sur la structure Tab, à droite vous verrez un onglet nommé A_I(AUTO_INCREMENT), vérifiez-le et enregistrez pour la première option, dans le cas wp_term, vous ne le faites que pour term_id).

Faites de même pour wp_termmeta et wp_term_taxonomy qui résoudront le problème.

0
Faith Olanrewaju

Vous ne pouvez pas définir de valeur maximale (à part choisir un type de données qui ne peut pas contenir de grands nombres, mais aucun n’a la limite que vous demandez). Vous pouvez vérifier cela avec LAST_INSERT_ID () après l'insertion pour obtenir l'ID du membre nouvellement créé et, s'il est trop volumineux, gérez-le dans votre code d'application (par exemple, supprimez et rejetez le membre).

Pourquoi voulez-vous une limite supérieure?

0
Emil Vikström