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 :

Partager un auto_increment ?


Sujet :

SQL Procédural MySQL

  1. #1
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Par défaut Partager un auto_increment ?
    Bonjour,


    je souhaiterais créer une structure de BDD comportant plusieurs tables. Exemple : actualités, évènements, fichespays, etc..

    Mon problème :

    je souhaiterais que mes tables partagent le même identifiant "id_objet" (par exemple) et auto_incrementé.

    On ajoute une actu => id_objet = 1
    On ajoute un évènement => id_objet = 2
    On ajoute une actu => id_objet = 3

    Est-ce possible de manière plus ou moins automatique ? et si oui, COMMENT ?

    Et sinon, quelle solution préconisez vous ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    sur le principe, il te faut une table Objets (id_objet en auto_increment, typeobjet) que tes trois autres tables référencent.

    Sur le "plus ou moins automatique", tu peux par exemple créer un trigger BEFORE INSERT sur la table des actus avec un algo de ce genre-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Objets (typeobjet) VALUES ('actu') ;
    SET new.id_objet = LAST_INSERT_ID() ;
    Idem pour les tables des événements, fiches pays, etc.

  3. #3
    Membre averti
    Inscrit en
    Juin 2002
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 37
    Par défaut
    Citation Envoyé par Antoun
    sur le principe, il te faut une table Objets (id_objet en auto_increment, typeobjet) que tes trois autres tables référencent.

    Sur le "plus ou moins automatique", tu peux par exemple créer un trigger BEFORE INSERT sur la table des actus avec un algo de ce genre-là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Objets (typeobjet) VALUES ('actu') ;
    SET new.id_objet = LAST_INSERT_ID() ;
    Idem pour les tables des événements, fiches pays, etc.
    Merci de ta réponse.

    J'ai commencé à implémenter une solution de ce type sauf qu'au lieu d'utiliser un TRIGGER (dont je connais trop mal l'utilisation), je vais gérer ça direct dans mon code PHP. Ajouter systématiquement un objet dans ma table objet, récupérer l'id et m'en servir pour ajouter mon objet dans la table qui lui correspond.

    Bon, en même temps ta proposition de trigger est vraiment séduisante, j'vais voir si j'peux gérer ça...

    /go Documentation Triggers

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

Discussions similaires

  1. [Kylix] partager fonctions
    Par RezzA dans le forum EDI
    Réponses: 1
    Dernier message: 16/03/2003, 16h02
  2. [VB6] [Réseau] Connexion et partage de données
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 21/10/2002, 18h12
  3. Partager son disque
    Par tintin22 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 16/09/2002, 00h34
  4. Réponses: 4
    Dernier message: 13/05/2002, 16h43
  5. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

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