Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2007, 17h06   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 37
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 37
Points : 13
Points : 13
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 ?
leup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2007, 22h02   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
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 :
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.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2007, 11h02   #3
Candidat au titre de Membre du Club
 
Inscription : juin 2002
Messages : 37
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 37
Points : 13
Points : 13
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 :
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
leup est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h41.


 
 
 
 
Partenaires

Hébergement Web