-
Id Unique par MySql
Bonjour à tous et toutes,
J'aimerai savoir, si il existe sous Mysql, une commande, comme en PHP, UNIQID ?
En fait j'ai besoin de cette éventuelle commande pour créer un ID unique de 20 caractères pour des importations de données.
Merci de vos éventuelles soluces.
Bonne journée.
-
Bonjour,
Si besoin c'est que les ID soient autognérés par MySQL, il existe les entiers auto incrémentés pour ça.
Si le besoin c'est d'avoir un contrôle d'unicité sur une colonne c'est possible aussi en créant un index unique sur cette colonne.
-
Merci pour la réponse.
Si le besoin c'est d'avoir un contrôle d'unicité sur une colonne c'est possible aussi en créant un index unique sur cette colonne.
Oui mais comment générer par exemple un ID de type 'ahdfvd454' à la volée ?
Mon soucis en fait est qu'a l'importation cet ID n'existe pas.
J'aurai donc voulu qu'il s'auto-génère lors de l'insertion dans la base MYSQL.
Mais puis-je le faire ...... :calim2:
Merci.
-
Les ID auto incrémentés sont forcément numériques.
Après, ce qui est numérique est aussi alpha-numérique donc ça devrait répondre au problème. Et à la lecture, rien n'empêche de faire une conversion du nombre en texte si besoin.
Le seul inconvénient est qu'il y a moins de combinaisons possibles donc moins de lignes stockables dans la table... mais faut vraiment avoir besoin de stocker une quantité astronomique de lignes pour ne pas pouvoir se contenter de ça.
Une autre solution est de faire un trigger sur insert qui permet de calculer dans une procédure la colonne ID lors de l'insertion.
Inconvénient 1: il faut scripter la génération de l'ID unique.
Inconvénient 2: impact de performance, ce script va s'exécuter à chaque insert.
-
Bon, pas simple tout ça.
Merci pour ces réponses et bonne soirée.
-
Quel est le but de cet identifiant alphanumérique ?
Si c'est pour en faire la clé primaire de la table, et donc une clé uniquement utilisée par le SGBD, utilise l'entier auto-incrémenté, c'est fait pour ça et les traitements sur les entiers sont plus perfomants que sur les chaînes de caractères.
Voir l'article de SQLPro à ce sujet.