Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Comment retrouver la table à partir d'un OID

From: Stéphane Bunel <stephane(at)stratum-ip(dot)net>
To: Sylvain Benet - Rugama <sylvain(at)rugama(dot)com>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: [pgsql-fr-generale] Re: [pgsql-fr-generale] Comment retrouver la table à partir d'un OID
Date: 2005-03-09 13:16:01
Message-ID: 422EF711.7010604@stratum-ip.net (view raw or flat)
Thread:
Lists: pgsql-fr-generale
Sylvain Benet - Rugama a écrit :
> J'ai en effet lu dans la doc que l'utilisation de clé primaire OID pour 
> les enregistrement n'est pas conseillé.
> Pourtant ce type correspond exactement à mes attentes : Entier non signé 
> sur 4 octets, unique quelque soit la table concerné.
> Mais je comprend que ce type soit réserver aux elements systèmes.

En effet. Faire TRES attention avec les imports / exports. Une base 
exportée sans attention sera remontée sans problème mais ne fonctionnera 
plus correctement, car les OID lors de l'import ne seront bien sur plus 
les mêmes puisque recalculés. Heureusement pour vous, pg_dump dispose 
d'une option à activer pour permettre la gestion des OID. Mais attention 
ce n'est pas un comportement par défaut, d'où une grande attention à 
porter sur les opérations de sauvegarde.

> Pour remplacer ce type, je vais donc créer une table UniqueObjectLocator 
> qui va simuler le fonctionnement des OID, 1 champ Serial et un champs 
> text qui donne le nom de la table. A chaque insertion d'un

Je ne connais pas du tout votre contexte mais ne serait-il par mieux de 
faire une table de liaison ?

UniqueObjectLocator :

  Votre OID | ref_table_id
     int?   |  foreign key sur table_id de la table Object

Object :
  table_id | table_name
    serial |    text

> enregistrement dans une table, je vais devoir créer "a la main" un 
> nouvel enregistrement dans cet table UniqueObjectLocator et y mettre le 

Utilisez plutôt un trigger si c'est possible. Cela vous donnera 
l'avantage de conserver l'intelligence "métier" au plus proche des données.

> nom de la table associé à cet ID, pour ensuite créer l'enregistrement 
> dans la table concerné avec cet identifiant retourné.
> 
> Sylvain Benet
(...)

Stéphane.

In response to

pgsql-fr-generale by date

Next:From: Sylvain Benet - RugamaDate: 2005-03-09 17:12:25
Subject: Re: Comment retrouver la table à partir d'
Previous:From: Hervé PiedvacheDate: 2005-03-09 11:36:44
Subject: Re: Re: [pgsql-fr-generale] Comment retrouver la table à partir d'un OID

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group