salut,

tu peux faire ceci : insert into table (select * from table1 where condition
= 'yes')

mais ceci je ne sais pas il faut essayer

insert into table2 (champ1) values (select champ1 from table1 where
condition='yes')

Bien à toi

Mic
----- Original Message ----- 
From: "Joseph Thirionet" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, June 08, 2004 12:36 PM
Subject: [CC21] MySql : select + insert


Bonjour la liste,

un petit stut vient me donner du fil à retordre :
y a-t'il moyen de faire un select d'une table, suivi d'un insert (du
résultat du select) dans une autre table, le tout dans une seule et unique
requête.
Je pourrais le faire en 2 requètes mais alors la 2ème se trouve dans le
bouclage de la première.

select champ1 from table1 where condition='yes'
insert into table2 (champ1) values ('ma_variable_à_récupérer')

Quand il n'y a que quelques dizaines voire centaines de records, cela peut
se faire, mais quand il s'agit de plusieurs dizaines de milliers, cela
mettrait le serveur par terre car cela signifie autant de requètes qu'il
n'y a de records qui vérifient la condition.
En le faisant en une seule requète, même si elle est conséquente, ce sera
quand même beaucoup plus léger et plus transparent au niveau des ressources.

Est-ce que c'est faisable ? Une sorte de requète imbriquée du genre :

insert into table2 (champ1) values (select champ1 from table1 where
condition='yes')



Ou y a-t-il une autre méthode de travail plus adéquate pour ce genre de cas
?
Merci d'avance pour vos lumières.

@+
Joseph


-- 
CyberCafe c'est chaque semaine le mardi 19h et 22h30 sur La 2!
Cette liste vous est offerte par Emakina <http://www.emakina.com/>
Emakina: technologie et creativite au service de vos projets Web.
Desabonnement par mail : <mailto:[EMAIL PROTECTED]>




-- 
CyberCafe c'est chaque semaine le mardi 19h et 22h30 sur La 2!
Cette liste vous est offerte par Emakina <http://www.emakina.com/>
Emakina: technologie et creativite au service de vos projets Web.
Desabonnement par mail : <mailto:[EMAIL PROTECTED]>

Répondre à