Identifiant unique sur plusieurs tables

kalimbra Messages postés 546 Statut Membre -  
jee pee Messages postés 42602 Date d'inscription   Statut Modérateur Dernière intervention   -
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 42602 Date d'inscription   Statut Modérateur Dernière intervention   9 779
 
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 20731 Statut Contributeur 3 194
 
merci de préciser sur quelle base de données tu travailles ...
0
kalimbra Messages postés 546 Statut Membre 72
 
ooppsss désolé

il s'agit de MySQL
0
Jul
 
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