#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
En 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