J'ai une base de données existante utilisant PHP, MySQL et phpMyAdmin.
Lorsque les utilisateurs deviennent membres sur 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 c'est comme générer un mot de passe aléatoire sauf que je ne veux que des numéros pour mes membres. Ce numéro d'identification doit être unique pour chaque membre.
Serait-il possible pour moi de définir la clé primaire sur auto_increment dans ma table utilisateur et de la définir pour qu'elle démarre à 10000, puis s'incrémente automatiquement chaque fois qu'un membre s'inscrit?
En outre, y a-t-il un nombre maximum auquel le numéro d'identification de la clé primaire irait?
Est-ce un moyen fiable et sûr d'utiliser le numéro d'identification de la clé primaire comme numéro de membre?
la source
Réponses:
Il existe des étapes possibles pour activer l'incrémentation automatique pour une colonne. Je suppose que la version de phpMyAdmin est 3.5.5 mais pas sûr.
Cliquez sur Table > onglet Structure > Sous Action Cliquez sur Principal (défini comme primaire), cliquez sur Modifier dans la fenêtre contextuelle, faites défiler vers la gauche et cochez A_I . Assurez-vous également que vous avez sélectionné Aucun comme valeur par défaut
la source
Query error: #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
Dans phpMyAdmin, accédez à la table en question et cliquez sur l'onglet "Opérations". Sur la gauche sous Options de table, vous serez autorisé à définir la valeur AUTO_INCREMENT actuelle.
la source
Exécutez simplement une simple requête MySQL et définissez le numéro d'incrémentation automatique sur ce que vous voulez.
En termes de maximum, pour autant que je sache, il n'y en a pas, et il n'y a aucun moyen de limiter ce nombre.
Il est parfaitement sûr et courant 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 de membre pour vous dans un format spécifique, puis vérifier que le numéro n'existe pas avant de l'insérer, mais pour moi personnellement, j'irais avec la valeur de l'id primaire auto_inc.
la source
la source
Dans phpMyAdmin, si vous configurez un champ dans votre table pour l'incrémentation automatique, puis insérez une ligne et définissez la valeur de ce champ sur 10000, il continuera à partir de là.
la source
@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 clé
peut être résolu en marquant d'abord le champ comme clé (en utilisant l'icône de clé avec l'étiquette primaire), sauf si vous avez une autre clé, cela peut ne pas fonctionner.
la source
Vous ne pouvez pas définir une valeur maximale (autre que de choisir un type de données qui ne peut pas contenir de grands nombres, mais il n'y en a aucun qui 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 gros, le gérer dans votre code d'application (par exemple, supprimer et rejeter le membre).
Pourquoi voulez-vous une limite supérieure?
la source
Cela est dû aux tables
wp_terms
,wp_termmeta
etwp_term_taxonomy
, dont tous leurs identifiants n'étaient pas définis surAUTO_INCREMENT
Pour ce faire, allez dans phpmyadmin, cliquez sur la base de données de préoccupation, la
wp_terms
table, cliquez sur l'onglet structure, à droite vous verrez un onglet nomméA_I(AUTO_INCREMENT)
, vérifiez-le et enregistrez (vous ne faites cela que pour la première option, dans le cas oùwp_term
vous êtes ne le faire que pourterm_id
).Faites de même pour
wp_termmeta
etwp_term_taxonomy
cela résoudra le problème.la source
(a) Cliquez simplement sur votre base de données, sélectionnez votre table. Cliquez sur «Opérations». Dans la section «options de table», changez la valeur AUTO_INCREMENT en la valeur souhaitée, dans ce cas: 10000 cliquez sur «Go». (Voir l'image ci-jointe)
(b) Vous pouvez également exécuter une commande SQL sous l'onglet SQL après avoir sélectionné votre table. Tapez simplement 'ALTER TABLE nom_table AUTO_INCREMENT = 10000;' puis cliquez sur «Go». C'est tout!! RÉGLAGE DE LA VALEUR D'AUGMENTATION AUTOMATIQUE image (a)
RÉGLAGE DE LA VALEUR D'AUGMENTATION AUTOMATIQUE image (B)
la source