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

#1 01/02/2010 12:44:38

mich30
Membre

probleme sur requete

update batdescr_paca set id_parc = p2.id_parc from batdescr_paca p1, batid_paca p2 where trim(p1.invar2) = trim(p2.invar2);

suite a cette requete j'ai cette erreur
comment la contourner
merci


ERROR:  could not write block 672367 of temporary file: No space left on device
HINT:  Perhaps out of disk space?

Hors ligne

#2 01/02/2010 14:38:25

Marc Cousin
Membre

Re : probleme sur requete

Sans le plan, c'est difficile de répondre.

Mais j'ai l'impression qu'il manque un critère de jointure à la requête : qu'est ce qui raccorde le premier batdescr_paca avec le reste de la requête ?

La requête ne devrait-elle pas être :

update batdescr_paca p1 set id_parc = p2.id_parc from batid_paca p2 where trim(p1.invar2) = trim(p2.invar2);

Ensuite un autre point : si il faut faire un trim sur invar2 dans les 2 tables, c'est probablement que la colonne devrait être trimmée avant insertion en base… en l'état, postgres ne peut pas utiliser l'index sur invar2, d'où l'utilisation d'espace temporaire.


Marc.

Hors ligne

#3 01/02/2010 17:38:43

mich30
Membre

Re : probleme sur requete

ok merci j'ai enlevé les trim

Hors ligne

Pied de page des forums