Pages: 1
- Sujet précédent - [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql - Sujet suivant
#1 Mon 27 March 2017 15:32
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 96
[FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql
Bonjour,
J'ai un petit soucis dans l'insertion d'objets dans une table postgres contenant une clé primaire basée sur une séquence par défaut.
Je souhaiterai insérer mes objets dans ma table, et générer automatiquement la clé via la séquence par defaut dans postgres. (la clé n'existe pas dans mes données sources)
Quand j'insère mes données, Postgres n'est pas content, pour lui FME essaye d'insérer une valeur "null" dans une clé primaire ce qui le contrarie fortement et je le conçoit tout à fait .
J'ai essayé de configuré le champ dans FME en int8 puis en serial mais aucune différence, impossible de déclencher la séquence par défaut.
Pour le moment, je bricole en faisait passer mes objets dans un SqlExecutor avec une instruction NEXTVAL sur la séquence par défaut mais cela ralentit l'écriture.
Auriez-vous une solution plus simple pour activer la valeur par défaut de postgres ou y aurait-il une configuration spécifique à réaliser sur la table / le champ ?
Merci d'avance pour vos éclaircissements.
Benjamin
Hors ligne
#2 Mon 27 March 2017 16:10
Re: [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql
hello,
Il faut l'autoriser si tu as fme en Anglais dans le writer => parameter => dernière liste déroulante => Allow serial column writing=> mettre à YES
Dernière modification par heretik25 (Mon 27 March 2017 16:10)
Freelance traitements ETL FME certifié: www.sitdi-france.fr Twitter : @sitdifrance
Site perso ~ www.partir-en-vtt.com
Hors ligne
#3 Mon 27 March 2017 17:34
Re: [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql
Sur le sujet je conseille de regarder :
https://georezo.net/forum/viewtopic.php?id=80361
A ma connaissance la situation n'a pas évolué à ce jour.
Hors ligne
#4 Tue 28 March 2017 08:59
- Ben22
- Participant actif
- Lieu: 33
- Date d'inscription: 11 May 2016
- Messages: 96
Re: [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql
Bonjour,
Le paramètre 'Allow serial column writing' n'a malheureusement pas solutionné le problème.
Il s'agit effectivement de la même situation que celle du topic ci-dessus, nous souhaitons rester en integer car notre séquence par défaut est partagée par toutes les tables du schéma.
Je vais donc rester avec mon SqlExecutor en attendant une future mise à jour de FME.
Merci pour vos retours.
Dernière modification par Ben22 (Tue 28 March 2017 09:02)
Hors ligne
#5 Tue 28 March 2017 11:15
- xav
- Participant assidu
- Date d'inscription: 27 Oct 2005
- Messages: 280
Re: [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql
Bonjour,
pour que FME reconnaisse ta sequence postgres, il faut qu'elle soit nommée comme il faut : <nom_table>_<nom_pk>_seq
Si c'est le cas, tu n'as rien à faire, ta séquence doit être utilisée.
Le paramètre 'Allow serial column writing' est à mettre à oui si tu ne veux pas utiliser ta séquence mais affecter les valeurs de ta clé par toi même (intéressant dans le cas ou l'on recharge une table et l'on doit conserver les valeurs des clés). Mais attention dans ce cas, il faut bien gérer l’uncité des des valeurs et penser à mettre à jour la séquence en fonction de la valeur max des clés rentrées.
Xavier
Xavier Lang
Information géographique et observatoire - DSI Communautaire
Cap Atlantique
Hors ligne
Pages: 1
- Sujet précédent - [FME 2016] Insertion d'objets avec valeur par défaut dans Postgresql - Sujet suivant