Voici ses principaux champs :
Nom du champ | Type du champ | Description du champ |
oid | oid | Identifiant de la colonne. |
attrelid | oid | Identifiant de la table de rattachement. |
attyplid | oid | Identifiant du type de la colonne. |
attlen | int2 | Taille de la colonne. |
attnotnull | boolean | TRUE si la valeur de la colonne peut être NULL. |
SELECT
d.usename,
'',
'',
c.relname,
a.attname,
CASE b.typname
WHEN 'bytea' THEN 1
WHEN 'char' THEN 2
WHEN 'character' THEN 2
WHEN 'character varying' THEN 2
WHEN 'varchar' THEN 2
WHEN 'text' THEN 2
WHEN 'date' THEN 3
WHEN 'interval' THEN 3
WHEN 'time' THEN 3
WHEN 'timestamp' THEN 3
WHEN 'bigint' THEN 4
WHEN 'bigserial' THEN 4
WHEN 'int' THEN 4
WHEN 'int2' THEN 4
WHEN 'int4' THEN 4
WHEN 'int8' THEN 4
WHEN 'integer' THEN 4
WHEN 'serial' THEN 4
WHEN 'serial4' THEN 4
WHEN 'serial8' THEN 4
WHEN 'smallint' THEN 4
WHEN 'bit' THEN 5
WHEN 'bit varying' THEN 5
WHEN 'bool' THEN 5
WHEN 'boolean' THEN 5
WHEN 'varbit' THEN 5
WHEN 'decimal' THEN 6
WHEN 'double precision' THEN 6
WHEN 'float4' THEN 6
WHEN 'float8' THEN 6
WHEN 'money' THEN 6
WHEN 'numeric' THEN 6
WHEN 'reel' THEN 6
ELSE 7
END,
a.attlen,
CASE a.attnotnull
WHEN TRUE THEN 0
ELSE 1
END,
a.attnum,
e.description
FROM pg_attribute a, pg_type b, pg_class c LEFT JOIN pg_description e ON e.objoid=c.oid, pg_user d
WHERE
b.oid=a.atttypid
AND c.oid=a.attrelid
AND d.usesysid=c.relowner
AND c.relkind='r'
AND e.objsubid=a.attnum
AND d.usename LIKE 'MonProprietaire%'
AND c.relname LIKE 'MaTable%'
AND a.attname LIKE 'MaColonne%'
ORDER BY c.relname, a.attnum;