#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

