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é ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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: 1554

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

Powered by FluxBB