PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#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

Pied de page des forums