Identifiant unique sur plusieurs tables

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 ?
Configuration: Windows XP
Safari 530.1

4 réponses

  1. Modérateur
    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
    1. Contributeur
      merci de préciser sur quelle base de données tu travailles ...
      0
      1. ooppsss désolé

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