IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Numéro unique ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut Numéro unique ?
    Salut,

    Je cherche à générer un numéro unique lors de l'insertion d'un record.

    Explication, j'ai trois tables : TableA, TableB et TableC, les 3 tables ont une clé primaire qui est de type int avec auto-incrementation. J'aurais besoin d'insérer dans une 4ème table des informations. Est-il possible avant l'insertion dans les tables de créer un n° unique que je pourrai déjà utiliser dans l'insertion dans la table A,B et C et ensuite dans la 4ème. En Oracle par exemple, on utilise une séquence que l'on incrémente, on recupère la valeur et on l'utilise alors dans les tables que l'on désire.

    Merci,

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Salut

    Ca doit être faisable avec une table "sequence" donc la seule colonne est un auto_increment et avec LAST_INSERT_ID().

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut
    Citation Envoyé par Maximilian
    Ca doit être faisable avec une table "sequence" donc la seule colonne est un auto_increment et avec LAST_INSERT_ID().
    J'avais pensé à cette solution mais je voulais un truc qui fait un peu moins bricolage ....

    Merci,

    C.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    Citation Envoyé par Oufti
    J'avais pensé à cette solution mais je voulais un truc qui fait un peu moins bricolage ....
    dans ce cas réorganise tes tables pour en faire une seule

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut
    Citation Envoyé par mathieu
    dans ce cas réorganise tes tables pour en faire une seule
    C'est possible mais s'il y a deux tables c'est qu'il y a une raison. Ne faire que une seule table c'est aussi du bricolage. Si je ne trouve rien d'autre, j'utiliserai une table de séquence.

    C.

  6. #6
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 670
    Par défaut
    Citation Envoyé par Oufti
    C'est possible mais s'il y a deux tables c'est qu'il y a une raison.
    et quelle est cette raison ?
    je demande ça parce que pour moi mettre une liste de nombres dans plusieurs tables c'est aussi du bricolage

  7. #7
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut
    Citation Envoyé par mathieu
    et quelle est cette raison ?
    Le multilinguisme. Les infos varient (le nom, la description d'un produit par exemple) suivant la langue.

    C.

  8. #8
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Mathieu a raison, je pense qu'il y a moyen de faire une modèle beaucoup plus générique. Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    langue (id_langue, nom_langue)
    produit (id_produit, prix)
    produit_langue (id_produit, id_langue, nom, description)
    au lieu de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    produit_francais (id_produit, nom, description, prix)
    produit_anglais (id_produit, nom, description, prix)
    produit_espagnol (id_produit, nom, description, prix)

  9. #9
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut
    Citation Envoyé par Maximilian
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    produit_francais (id_produit, nom, description, prix)
    produit_anglais (id_produit, nom, description, prix)
    produit_espagnol (id_produit, nom, description, prix)
    Suis pas débile, je n'allais certainement pas faire comme ça

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Par défaut
    Ben comme y a pas de séquence en Mysql, à part le bricolage, tu n'auras pas beaucoup de possibilités malheureusement.

    Ou alors, mettre ta base sur un serveur Oracle

  11. #11
    Membre confirmé
    Inscrit en
    Octobre 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 86
    Par défaut
    Citation Envoyé par gregory.broissard
    Ben comme y a pas de séquence en Mysql, à part le bricolage, tu n'auras pas beaucoup de possibilités malheureusement.
    hé oui

    Ou alors, mettre ta base sur un serveur Oracle
    Pourquoi pas, j'aime bien, au boulot je l'utilise depuis.... piouf plusieurs années. mais c'est un peu trop usine à gaz pour ce que j'ai à faire

  12. #12
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Citation Envoyé par Oufti
    Suis pas débile, je n'allais certainement pas faire comme ça
    Si tu le dis...
    Je serais quand même curieux de connaitre le cas de figure qui t'oblige à faire ces contorsions.

  13. #13
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 414
    Par défaut
    t'es pas forcément obligé de mettre une instance Oracle complète.

    Tu peux peut être juste utiliser un bout d'une base de données (un schéma, un tablespace sur une base existante et le tour est jouée)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Random numéro unique
    Par djsmoye dans le forum Débuter
    Réponses: 13
    Dernier message: 17/11/2010, 13h53
  2. Réponses: 1
    Dernier message: 08/01/2010, 13h18
  3. numéros unique ordinateur
    Par totofe dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 03/12/2008, 21h35
  4. Réponses: 3
    Dernier message: 22/08/2008, 11h39
  5. [Système] générer numéro unique
    Par cd090580 dans le forum Langage
    Réponses: 4
    Dernier message: 17/06/2007, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo