|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : février 2005 Messages : 198 ![]() |
Bonjour,
J'utilise un WEB SIG (cartographie) me permettant notamment de mettre à jour des objets graphiques. J'essaye de mettre à jour deux colonnes d'une table par l'intermédiaire de trigger mais je rencontre un souci avec la mise à jour des colonnes quand un objet graphique est crée. Voici le trigger : Code :
Merci pour votre aide ! SD |
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : octobre 2008 Messages : 1 702 ![]() |
Si le trigger porte sur cav_postgis.sb_data_309, il ne faut pas faire des UPDATE et INSERT sur cette même table à l'intérieur du trigger. Il faut assigner NEW.champ à la valeur qu'on veut pour changer la valeur d'un champ.
|
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : février 2005 Messages : 198 ![]() |
Merci pour cette réponse.
En fait le trigger se trouve sur une autre table sb_geom_309. Pour donner plus d'explication quand un objet est créé graphiquement dans le logiciel , 1 ligne se créé dans chaque table. 1 dans sb_data_309 avec les données qui sont renseignées dans une fiche et 1 dans sb_geom_309 qui décrit la géométrie. Le but étant pour la colonne superficie de la table sb_data_309 de renseigner automatiquement la superficie de la géométrie en utilisant la fonction area et en indiquant la géométrie qui vient d'être créée "g". Effectivement on va mettre à jour une valeur d'un enregistrement qui vient d'être créé dans une autre table, est ce possible de faire cela ? |
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : octobre 2008 Messages : 1 702 ![]() |
Oui il est possible de mettre à jour une autre table.
Mais peut-être que la ligne correspondante de sb_data_309 n'existe pas encore au moment de l'insertion dans sb_geom_309, auquel cas l'UPDATE ne fait rien. Ce serait vérifiable avec un code du genre Code :
|
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com