Vous n'êtes pas identifié(e).

#1 12/09/2011 11:35:28

Pascal24
Membre

Create Function Trigger

Bonjour,
Je suis nouveau sur ce Forum et j'espère être dans la bonne rubrique
Je travaille sur la mise ne place d’une base de données PostgreSQL/PostGis.
J’ai une base de données « bdtest », un schéma «  schematest » et une table « tabletest », dans laquelle je veux que le champ « idtest » se remplisse automatiquement avec une valeur unique qui servira de champs ID spécifique à l’ensemble de la base de données (différentes tables à terme). Ce champ est défini en contrainte de clef primaire.
Pour gérer cette clef unique j’ai mis en place dans le schéma « public » une « séquence » que j’appelle « cpte_idtest », qui génère et distribue aux tables concernées le numéro auto et unique pour la base.
Dans Postgres, avec l’utilisation de la commande suivante ça fonctionne bien :
CREATE TABLE # et de la ligne « idtest integer NOT NULL DEFAULT nextval('cpte_idtest'::regclass),  # appel la valeur suivante de la séquence
Je voudrai faire la même chose en utilisant les fonctions trigger, car je vais mettre à jour la base de données depuis un logiciel externe (SIG ArcEditor/ArcSDE de la société ESRI) et celui-ci n’utilise pas les informations du CREATE TABLE lors de l’insertion d’une nouvelle donnée. L’incrémentation ne fonctionne pas.
Le support d’ESRI m’a dit qu’il fallait utiliser les fonctions trigger pour faire cela.
J’ai bien essayé de « rédiger » un CREATE OR REPLACE FUNCTION puis un CREATE TRIGGER mais sans résultat.
Bon je reconnais que je ne suis pas un spécialiste du SQL.
Le message est un peu long,...
Aussi merci d'avance au courageux qui iront jusqu'au bout ;-) et merci de votre aide ou pistes de recherches sur le sujet.
Salutations,
Pascal24

Dernière modification par Pascal24 (12/09/2011 11:46:29)

Hors ligne

#2 12/09/2011 12:12:45

gleu
Administrateur

Re : Create Function Trigger

Mauvais forum pour ce thread. Néanmoins, vous en avez ouvert un autre avec le même message sur http://forums.postgresql.fr/viewtopic.p … 883#p10883. Donc la discussion doit continuer là-bas.

(Et tant qu'à faire, évitez de créer deux même threads. Si le forum n'est pas le bon, les administrateurs peuvent déplacer le message sur le bon forum. Merci.)


Guillaume.

Hors ligne

Pied de page des forums