|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : avril 2004 Messages : 1 ![]() |
Bonjour,
je possède une table client dont la primary key est ref_client. Le format de la clef primaire est CLIXXXX. Mon souci est d'incrémenter automatiquement à chaque insertion dans la table client, la clé primaire CLIXXXX. J'ai eu idée (en lisant le cours SQL de A à Z) de créer une table supplémentaire répertoriant la dernière valeur numérique de la clé primaire de ma table client. Je souhaite faire un trigger déclenché avant l'insertion dans la table client. Ce trigger récupère cette dernière valeur numérique, l'incrémente, la concatène avec la chaîne CLI et l'insère dans CLIENT. Mais j'ai quelques problèmes avec les triggers et les fonctions sous postgresql. Il me réclame un type trigger. J'ai vu qu'il fallait mettre OPAQUE. Mais ensuite seul language 'plpgsql' semble être autorisé. Or moi il me dit language inconnu, j'ai pourtant installé le rpm correspondant. Merci de m'aider. Nico |
|
|
00
|
|
|
#2 | ||||||
|
Membre du Club
![]() Inscription : mars 2004 Messages : 89 ![]() |
Bonjour,
Tout d'abord il faut initialiser le PL/pgSQL de la maniere suivante: createlang plpgsql votredb ensuite créez votre trigger qui va déclencher votre fonction: exemple: Code :
Code :
Code :
http://www.developpez.net/forums/viewtopic.php?t=192538 |
||||||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mai 2004 Messages : 41 ![]() |
tu devrais utiliser pour ta colonne clé un type de données adéquat comme serial ou bigserial qui sont autoincrémentés à chaque nouvelle ligne.
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : juillet 2004 Messages : 276 ![]() |
Salut,
merci pour vos réponses. J'ai réussi à mettre en place ce que je voulais. Par contre pour le type serial je n'ai pas essayé. Ca marche avec un suffixe en caractère ? |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mars 2004 Messages : 89 ![]() |
De nada, n'oublie pas le tag résolu
@peluche |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com