banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oubliĂ© ?

#1 Tue 09 June 2020 19:05

Bureau 119
Juste Inscrit !
Date d'inscription: 9 Jun 2020
Messages: 5

Mise a jour de donnees ordinatives sous PostgreSQL

Bonjour,

J'ai un tableau de données de 38 points de ramassage, qui ressemble à ceci :

N°Point          Ordre de ramassage
110               1
122               2
135               3
77                 4
...                 ...
55                38

Le N° point est un numéro d'identifiant, l'ordre de ramassage indique la position chronologique de ramassage.
Je souhaite que cet ordre puisse ĂȘtre modifiĂ© librement par un utilisateur, avec recalcul automatique de tous les autres.
Exemple : un nouveau point 1000 est inséré en 21Ú position. Automatiquement tous les points dont l'ordre est égal ou supérieur à 21, devront prendre +1.
Si quelqu'un a déjà fait ce genre de manip, avec un trigger ou autre, cela m'intéresse.
Merci

Hors ligne

 

#2 Tue 09 June 2020 19:47

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1566

Re: Mise a jour de donnees ordinatives sous PostgreSQL

Bonsoir,

Vous pouvez le faire par requete SQL si vous maitrisez le code qui fait l'insert:
update ramassage set ordre = ordre + 1 where ordre >= 21 and nopoint != 1000;

Ou avec un trigger AFTER INSERT ON ramassage, dont la fonction lance un update sur la table en fonction des valeurs nopoint et ordre insérées:

Code:

update ramassage set ordre = ordre + 1 where ordre >= NEW.ordre and nopoint != NEW.nopoint;

Nicolas

Hors ligne

 

#3 Fri 12 June 2020 14:00

Bureau 119
Juste Inscrit !
Date d'inscription: 9 Jun 2020
Messages: 5

Re: Mise a jour de donnees ordinatives sous PostgreSQL

Bonjour,

Merci pour votre réponse.
Ça ne fonctionne pas mais je ne pense pas que ça vienne du trigger, peut-ĂȘtre de la structure de la table (table de relation non graphique).
L'utilisateur ne peut pas effectuer de requĂȘte SQL, c'est donc bien un trigger qui doit dĂ©clencher le recalcul des numĂ©ros d'ordre.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo