Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2006, 10h18   #1
Membre confirmé
 
Inscription : juillet 2003
Messages : 400
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 400
Points : 202
Points : 202
Par défaut optimisation requete insert ou update sous postgres

bonjour
j'ai une table sous postgres composé de 2 colonnes exp : id , nbr_enfants (par example)

je veux faire une requete en lui passant un id et un nbr :

si l'id existe --> juste elle met à jour la colonne enfants , sinon elle fait une nouvelle insertion ds la table

je ne sais pas comment faire ,
je ne pese pas qu'à chaque fois je vais parcourir la table en charchant si l'id passé existe
__________________
;-) cordialement
peppena est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2006, 00h56   #2
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Salut,

Postgre ne dispose pas des commandes "REPLACE INTO" ou "INSERT OR REPLACE" que l'on retrouve dans d'autres SGBD (et non dans le standard SQL)

Il va donc falloir que tu fasses quelque chose du genre :

Code :
1
2
3
4
IF EXISTS( SELECT NULL FROM individu WHERE id = X )
UPDATE individu SET nbr_enfants = ... WHERE id = X
ELSE
INSERT INTO individu VALUES( ..., ... )
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2007, 11h21   #3
Candidat au titre de Membre du Club
 
Inscription : août 2005
Messages : 33
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 33
Points : 11
Points : 11
Par défaut correction

update f_vecteur
set chemin=case
when(chemin like '%SIG\BDCAUE%') then replace (chemin,'SIG\BDCAUE','') else chemin end ;


voici une fonction replace qui fonctionne sous postgres
emilek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h07.


 
 
 
 
Partenaires

Hébergement Web