質問: 配列n番目のid) 3,indexをインクリメントする(i++) 4,2のforを配列の要素数分繰り返す 順序立てて行えば、このパターンで実行できますが、SQL単体で完結しない上に 動作が遅いです。2000行処理するのに1分ほどかかってしまいます。 勿論、PCのスペックなども影響はしますが、行数が多い状態で一行毎UPDATEするのが 時間がかかっていると思います。 これを高速で、できるならばSQLだけで実現することはできますでしょうか。 よろしくお願いいたします。
回答: どうしても SQL だけでということなら、 ``` create table tbl_new ( id integer, name text, price integer, idx integer primary key autoincrement ); insert into tbl_new (id, name, price) select id, name, price from tbl_test; alter table tbl_test rename to tbl_old; alter table tbl_new rename to tbl_test; ``` という方法もあります。カラムの型が若干変わってしまいますが。 手元では1秒かからず一瞬で完了しました。