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?
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éfaut
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.
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.
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.
@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.
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.
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?