Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 24/01/2012 16:03:49
- cbeau
- Membre
Retourner le nom d'une table requêtée
Bonjour.
Comment puis-je retourner le nom de la table interrogée dans le résultat d'une requête.
Contexte.
J'interroge une table maitresse qui a des tables héritière et je voudrais connaitre pour chaque enregistrement retourné, le nom de la table héritière dont il est issu.
Merci.
Hors ligne
#2 24/01/2012 16:06:59
- gleu
- Administrateur
Re : Retourner le nom d'une table requêtée
À moins d'avoir le nom dans une colonne, vous ne pouvez pas.
Guillaume.
Hors ligne
#3 24/01/2012 16:14:59
- Marc Cousin
- Membre
Re : Retourner le nom d'une table requêtée
En fait, si, on peut, mais c'est évidemment pas portable du tout:
CREATE TABLE parent (a int);
CREATE TABLE fils1 () inherits (parent);
CREATE TABLE fils2 () inherits (parent);
INSERT INTO fils1 values (1);
INSERT INTO fils2 values (2);
SELECT tableoid::regclass,* from parent ;
tableoid | a
----------+---
fils2 | 2
fils1 | 1
L'écriture ::regclass, c'est juste pour éviter de jointurer sur pg_class. La colonne tableoid est cachée dans toutes les tables, et vaut l'oid de la table.
Marc.
Hors ligne
#4 24/01/2012 17:12:16
- gleu
- Administrateur
Re : Retourner le nom d'une table requêtée
oula, joli.
Guillaume.
Hors ligne
#5 24/01/2012 18:27:27
- cbeau
- Membre
Re : Retourner le nom d'une table requêtée
Merci Marc Cousin, ça fonctionne
Hors ligne
Pages : 1