PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 Re : PL/pgSQL » coller enregistrement d'une ligne dans une autre » 28/02/2013 02:41:33

Bonjour,
ok j'ai fait un update:
update models_list set sum_all_consumption=(select sum_all_consumption from models_list where model_number=15) where model_number=355;
et ca marche

mais pour plusieurs variables, ca ne marche pas:
UPDATE models_list SET (sum_all_consumption,sum_all_exports,sum_all_resp_flows) = (SELECT sum_all_consumption,sum_all_exports,sum_all_resp_flows FROM models_list WHERE model_number=15) WHERE model_number=355;

ca me renvoit: ERREUR:  erreur de syntaxe sur ou près de « SELECT »
LINE 1: ...onsumption,sum_all_exports,sum_all_resp_flows) = (SELECT sum...
                                                             ^


********** Error **********

ERREUR: erreur de syntaxe sur ou près de « SELECT »
SQL state: 42601
Character: 84

je pense qu'il s'agit d'un truc a la con lie a une parenthese mais apres plusieurs tests pas de solution.
Pourriez-vous m'indiquer ou se trouve la boulette et comment la resoudre please?
merci

#2 Re : PL/pgSQL » coller enregistrement d'une ligne dans une autre » 26/02/2013 00:33:23

en fait, la requete ne me convient pas car je ne souhaite pas creer de nouvel enregistrement mais coller ds une ligne deja existante des valeurs de variables provenant d'une autre ligne deja existante.
Ainsi dans la requete que vous m'envoyez:
INSERT INTO models_lists  (model_number,author,contact,model_year_begin,model_year_end) SELECT 355,author,contact,model_year_begin,model_year_end from models_list where model_number=252

je ne veux pas creer de nouvel enregistrement 355 mais importer de l'enregistrement 252 les valeurs des variables author,contact,model_year_begin,model_year_end dans l'enregistrement 355 (une sorte de copier/coller de certaines variables d'une ligne a une autre). Sachant que model_number est ma cle primaire, si j'applique votre requete, cela viole la contrainte de cle primaire.

Auiez-vous la solution?
Merci

#3 Re : PL/pgSQL » coller enregistrement d'une ligne dans une autre » 22/02/2013 19:14:58

hello,
c'est parfait, ca marche!
merci beaucoup pour le coup de main
Mat

#4 PL/pgSQL » coller enregistrement d'une ligne dans une autre » 22/02/2013 01:33:21

colleter
Réponses : 6

Bonjour,
j'ai une table avec plusieurs enregistrements et je souhaiterai copier des valeurs de variables pour une ligne dans une autre ligne. J'ai tente plusieurs choses dt l'idee est:
insert into models_list (author,contact,model_year_begin,model_year_end) where model_number=335 values
(select author,contact,model_year_begin,model_year_end from models_list where model_number=252);

mais ca ne marche pas.
Avez-vous une idee pour resoudre ce probleme?

merci

#5 Site PostgreSQL.fr » coller enregistrement d'une ligne dans une autre » 22/02/2013 01:10:42

colleter
Réponses : 0

Bonjour,
j'ai une table avec plusieurs enregistrements et je souhaiterai copier des valeurs de variables pour une ligne dans une autre ligne. J'ai tente plusieurs choses dt l'idee est:
insert into models_list (author,contact,model_year_begin,model_year_end) where model_number=335 values
(select author,contact,model_year_begin,model_year_end from models_list where model_number=252);

mais ca ne marche pas.
Avez-vous une idee pour resoudre ce probleme?

merci

Pied de page des forums

Propulsé par FluxBB