Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#1 Mon 26 March 2012 10:50

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

[POSTGRESQL] tables liées

Bonjour,

dans une base de données postgresql, est-il possible de créer des tables liées provenant d'une autre base de données postgresql voire carrément d'un autre serveur postgresql?

Merci d'avance

Hors ligne

 

#2 Mon 26 March 2012 11:34

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: [POSTGRESQL] tables liées

icadedt a écrit:

Bonjour,

dans une base de données postgresql, est-il possible de créer des tables liées provenant d'une autre base de données postgresql voire carrément d'un autre serveur postgresql?

Merci d'avance


Bonjour, un module permet de faire ca: dblink.

Nicolas

Hors ligne

 

#3 Mon 26 March 2012 15:15

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

Re: [POSTGRESQL] tables liées

et c'est possible d'utiliser dblink dans le cadre de la définition d'une contrainte de clé étrangère pour une colonne?
je me dis que je pourrais le faire par trigger mais si il y a une solution plus élégante...

Dernière modification par icadedt (Mon 26 March 2012 15:20)

Hors ligne

 

#4 Mon 26 March 2012 16:15

vincentp
Participant actif
Lieu: Paris
Date d'inscription: 18 Jul 2006
Messages: 127

Re: [POSTGRESQL] tables liées

Salut,

icadedt a écrit:

et c'est possible d'utiliser dblink dans le cadre de la définition d'une contrainte de clé étrangère pour une colonne?
je me dis que je pourrais le faire par trigger mais si il y a une solution plus élégante...


Normalement oui, car on peut mettre des fonctions dans les contraintes, donc il suffit d'avoir une fonction qui va faire la vérification sur la connexion dblink.

Par contre je vous déconseille fortement de le faire, vis à vis des performances c'est très très mauvais. À moins que vous ayez vraiment une stable qui soit en lecture seule.

Si vous n'avez pas un besoin de synchronisation avec une très faible latence, et que vous êtes dans un mode maitre-esclave (pas multi-maitre), je vous conseille de faire une réplication des tables concernées dans la base locale et de mettre les contraintes dessus.
Pour faire les mises à jour il y a plusieurs façons de faire suivant votre use case : la réplication postgres, pgpool, backup/restore...

Hors ligne

 

#5 Mon 26 March 2012 17:10

icadedt
Participant assidu
Lieu: ici et là
Date d'inscription: 21 Jul 2006
Messages: 478

Re: [POSTGRESQL] tables liées

vincentp a écrit:

Salut,

Normalement oui, car on peut mettre des fonctions dans les contraintes


auriez-vous un exemple de code pour faire cela?

Hors ligne

 

#6 Tue 03 April 2012 11:57

vincentp
Participant actif
Lieu: Paris
Date d'inscription: 18 Jul 2006
Messages: 127

Re: [POSTGRESQL] tables liées

icadedt a écrit:
vincentp a écrit:

Salut,

Normalement oui, car on peut mettre des fonctions dans les contraintes


auriez-vous un exemple de code pour faire cela?


N'importe quelle table avec une colonne de géométrie créée par PostGIS a des contraintes avec des fonctions pour vérifier les types, dimension, srid.
Vous pouvez voir la façon de les définir en SQL avec pgadmin simplement :

Par exemple :

Code:

ALTER TABLE mytable
  ADD CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 3);

Hors ligne

 

Pied de page des forums

Powered by FluxBB