#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: 1554
Re: [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
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
Re: [POSTGRESQL] tables liées
Salut,
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
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
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?
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