Message posté par : Léandre Béron
----------------------------------------
Bonjour,
Pour pouvoir passer de Pg 9.6 vers pg 13, une étape importante est de corriger les tables
ayant la clause WITH OID = TRUE (plus compatible à partir de pg12).
Pour toute ces tables, nous allons créer une séquence + créer un attribut en base pour
stocker les valeurs actuelles et conserver un attribut "oid" en dur cette
fois-ci pour ne pas avoir d'impact sur nos outils SIG.
J'ai donc tenté de lister toutes ces tables via la requête suivante :
-----------------
Citation :
select
pt.schemaname ,
pt.tablename
from
pg_catalog.pg_class pc
join pg_catalog.pg_tables pt on pc.relname=pt.tablename
where
pc.relhasoids
and pt.schemaname != 'pg_catalog';
-----------------
Cela semble fonctionner mais cela me liste aussi des tables donc la clause WITH OID est à
FALSE.
Je suis donc allé voir 2 tables spécifiques (une avec la clause TRUE et l'autre FALSE)
pour lister leurs attributs via cette requête :
-----------------
Citation :
SELECT DISTINCT
*
FROM
pg_attribute pa
JOIN pg_catalog.pg_class pc on pa.attrelid = pc.oid
JOIN pg_catalog.pg_tables pt on pc.relname=pt.tablename
WHERE
pc.relhasoids
AND attname = 'oid'
AND pt.schemaname IN ('m_education_jeunesse','bdcarto')
AND tablename IN ('centre_loisir','toponymeçzone_habitat');
-----------------
Je vois apparaître une ligne attname = 'oid' pour ma table centre_loisir qui
n'a pas cette clause à TRUE, et qui n'a pas non plus d'attribut nommé
'oid' dans la table.
Pour assurer mon test, je suis passé par un
-----------------
Citation :
SELECT oid FROM m_education_jeunesse.centre_loisir;
-----------------
pour vérifier et il n'en existe pas.
Je ne comprends pas pourquoi certaines tables avec cette clause OID FALSE sort dans ma
requête, ni pourquoi dans pg_attribute j'ai des lignes pour des attname 'oid'
sur des tables qui n'en ont pas.
Peut-on 'nettoyer' les tables systèmes ? Cela pourrait-il provenir de
manipulations historiques avec des résidus qui seraient restés ?
Cordialement,
Léandre BERON
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=358960#p358960
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net