#1 Tue 08 December 2015 14:21
- ron22
- Participant occasionnel
- Lieu: Brest
- Date d'inscription: 22 May 2008
- Messages: 33
Gestion conditionelle dans un ALTER TABLE - POSTGRES
Bonjour,
Je réalisé un tratement FME afin d'intégrer régulièrement les données de mon délégataire AEP - EU dans une base relationelle POSTGIS.
Avant le traitement j'utilise une requête SQL pour supprimer les clefs etrangères (sinon mon traitement passe pas car pas possible de ), c'est de type :
ALTER TABLE gbd_data.aep_branch
DROP CONSTRAINT "FK__aep_branch__commune" ;
Puis j'ajoute les contraintes via une nouvelle requête de type :
ALTER TABLE gbd_data.aep_branch
ADD CONSTRAINT "FK__aep_branch__commune" FOREIGN KEY (id_commune)
REFERENCES gbd_data.c_insee (code) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION;
J'ai beucoup de contraintes à gérer et mon appli étant en construction, il m'arrive encore d'ajouter / supprimer des contraintes de clef étrangère.
Cependant, j'ai un message d'erreur si je souhaite supprimer une contrainte qui n'existe pas. J'ai bien des solutions de contournement mais j'aimerais que mon traitement continue même s'il rencontre une erreur lors de la suppression d'une contrainte, je vois 2 solutions :
- forcer le traitement à s'exécuter jusqu'au bout même s'il rencontre une erreur sur un ALTER TABLE
- ajouter une conditionnelle qui dirait : si tel clef etragère existe, alors tu la supprime....
Je n'arrive à faire ni l'un ni l'autre : Quelqu'un a t'il déjà rencontré ce problème?
Merci
Ronan
Ronan Jarno
Shom - Brest
Hors ligne
#2 Tue 08 December 2015 14:50
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Gestion conditionelle dans un ALTER TABLE - POSTGRES
Bonjour,
La clause if exists est supportée par alter table:
alter table .... DROP CONSTRAINT IF EXISTS ....
Nicolas
Hors ligne
#3 Tue 08 December 2015 18:03
- ron22
- Participant occasionnel
- Lieu: Brest
- Date d'inscription: 22 May 2008
- Messages: 33
Re: Gestion conditionelle dans un ALTER TABLE - POSTGRES
Bonjour,
merci pour la réponse, cela règle mon problème
Bonne soirée
Ronan Jarno
Shom - Brest
Hors ligne