syntaxe de l'insertion comme dans MySQL
Posted in 2008
Topics: General Discussion
Translated from English by DrWatson — View original
existe-t-il une option permettant de faire : insert into customer (fname) values ('a'),('b'); merci. jack
L'utilisateur vomaringo@yahoo.com a écrit : > existe-t-il une option permettant de faire : > insert into customer (fname) values ('a'),('b'); > Non, en SQL pur il vous faudra deux instructions INSERT pour cela. Si vous utilisez un langage hôte, vous pouvez employer un curseur INSERT pour insérer autant de lignes que vous le souhaitez avec une seule instruction INSERT, et c'est très efficace. Un exemple en ESQL/C (mais vous pouvez faire de même avec ODBC, JDBC, etc.) : $char a_value[2]; ... $BEGIN WORK; $PREPARE ins_s FROM "INSERT INTO customer (fname) VALUES ( ? )"; $DECLARE ins_c CURSOR FOR ins_s; for (rec=0; rec=num_in_array; rec++) { strcpy( a_value, value_array[rec] ); $PUT ins_c USING :a_value; } $FLUSH ins_c; $COMMIT WORK; Art S. Kagel Oninit > merci. > jack > _______________________________________________ > Liste de diffusion Informix-list > Informix-list@iiug.org > http://www.iiug.org/mailman/listinfo/informix-list > >
Art S. Kagel (Oninit LLC) a écrit : > vomaringo@yahoo.com a écrit : >> existe-t-il une option permettant de faire : >> insert into customer (fname) values ('a'),('b'); >> > > Non, en SQL pur, il vous faudra deux insertions pour cela. J'ai vu des utilisations créatives de UNION ALL pour arriver à ce résultat dans certains produits. Je ne sais pas si cela fonctionne dans IDS... Cordialement Serge -- Serge Rielau Développement des solutions DB2 Laboratoire IBM de Toronto