Pages: 1
- Sujet précédent - comment mettre à jour un attribut d'une table avec le numéro d'enreg - Sujet suivant
#1 Wed 20 December 2017 14:16
- isa
- Participant occasionnel
- Lieu: Lille
- Date d'inscription: 13 Sep 2005
- Messages: 18
comment mettre à jour un attribut d'une table avec le numéro d'enreg
Bonjour,
Je cherche à mettre à jour un attribut avec le numéro d'enregistrement dans une table postgreSQL
je ne trouve pas l'équivalent $id de QGIS pour postgre
Merci pour votre aide
Isa
Hors ligne
#2 Wed 20 December 2017 15:13
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: comment mettre à jour un attribut d'une table avec le numéro d'enreg
Ca sera la commande row_number() OVER () sur postgre
Hors ligne
#3 Wed 20 December 2017 15:19
- isa
- Participant occasionnel
- Lieu: Lille
- Date d'inscription: 13 Sep 2005
- Messages: 18
Re: comment mettre à jour un attribut d'une table avec le numéro d'enreg
J'avais trouvé la commande mais il me mettait toujours 1 dans le champ.
J'ai fais cette requête (avec l'aide d'une collègue) et cela me donne bien ce que je souhaitais
UPDATE ma_table SET id =
(WITH t1 AS (SELECT ROW_NUMBER() OVER() as ident, * FROM ma_table)
SELECT t1.ident FROM t1
WHERE t1.champ = ma_table .champ
);
Merci
Hors ligne
#4 Wed 20 December 2017 16:15
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3199
- Site web
Re: comment mettre à jour un attribut d'une table avec le numéro d'enreg
Bonjour,
J'avais trouvé la commande mais il me mettait toujours 1 dans le champ.
Il faut faire attention avec cette fonction car si il y a une fonction d'agrégat dans la requête il va vous renvoyer n fois le même row_number.
Il faut toujours faire une requête qui permet d'obtenir X champs, puis l'utiliser row_number() over() ou faire une requête sans agrégats (comme vous l'avez fait).
Et attention aux requêtes spatiales qui agrègent ... (st_union() ou autre).
Pour bien comprendre cette fonction je vous conseille de lire la doc postgresql sur (mot clef) "WINDOWS FUNCTION".
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#5 Wed 20 December 2017 16:59
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: comment mettre à jour un attribut d'une table avec le numéro d'enreg
Pour bien comprendre cette fonction je vous conseille de lire la doc postgresql sur (mot clef) "WINDOWS FUNCTION".
Pour celles et ceux qui chercheraient : https://www.postgresql.org/docs/9.6/sta … indow.html
Hors ligne
Pages: 1
- Sujet précédent - comment mettre à jour un attribut d'une table avec le numéro d'enreg - Sujet suivant