Identifiant unique sur plusieurs tables

Fermé
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 - 17 juil. 2009 à 13:39
jee pee Messages postés 39661 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 28 avril 2024 - 22 nov. 2010 à 21:40
Bonjour,

j'aurais besoin d'un identifiant unique sur plusieurs tables (autrement dit dont la valeur ne se retrouve sur aucune des tables concernées).

Pas difficile me direz vous, sauf que je traite chacune de ces tables séparément. Cahcune a son id primaire et unique, mais cet identifiant doit être unique sur l'ensemble de la base. (j'en ai besoin pour établir des liaisons)..

Existe t' il une fonction pour cela ou dois je vérifier à chaque insertion l'entièreté des tables concernées ?

4 réponses

jee pee Messages postés 39661 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 28 avril 2024 9 240
22 nov. 2010 à 21:40
Salut,

Cette discussion est ancienne, mais comme elle vient d'être réveillée ;-)

Sous un SGBD comme oracle on utiliserait une séquence pour générer un identifiant unique.

Mais cela n'existe pas sous mysql, la solution créer une fonction qui simule le fonctionnement des séquences : http://www.sqlfr.com/codes/MYSQL-FONCTION-GERER-COMPTEURS-EQUIVALENT-SEQUENCES-ORACLE_45299.aspx

cdlt

1
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
17 juil. 2009 à 13:44
merci de préciser sur quelle base de données tu travailles ...
0
kalimbra Messages postés 469 Date d'inscription samedi 22 mars 2008 Statut Membre Dernière intervention 7 octobre 2014 72
17 juil. 2009 à 14:06
ooppsss désolé

il s'agit de MySQL
0
md5(microtime()) avec une suite de lettre correspondant à ta base :
sur une base livre id = LIV464532qs465qs
sur une base Bibli id = BIBLI4654587dsf9875

en gros c'est l'idée mais faut le donnée comme valeur et pas comme auto-incrémentation.
0