SQLiteを使用して、テーブルに番号を高速で振る方法
お世話になります。
データベースはSQLite限定で、ある特定の2000件ほどのテーブルがあるとし、
これにランダムで番号を順に振っていく、『高速でできる』方法を探しています。
id,name,price,index
1,りんご,300,0
2,いちご、150,0
3,すもも,250,0
.
.
.
2000,ぶどう,470,0
上記のようなテーブルがあるとし、一番後ろのデータ(indexのところ)に
1から2000の重複しないユニークなデータを振りたいと思っています。
このようなことは、SQLだけで実現は可能でしょうか。そして、肝心なのは
高速でできるか、ということです。
現在の私の知識では解らないので、コードと併用して下記のように行っています。
1,データをSELECTで ORDER BYRANDOM()で一覧を配列として取得
2,コード上でforで回しながら、配列の順番にindexをUPDATEする(UPDATE xxx SET index = i WHERE id = 配列n番目のid)
3,indexをインクリメントする(i++)
4,2のforを配列の要素数分繰り返す
順序立てて行えば、このパターンで実行できますが、SQL単体で完結しない上に
動作が遅いです。2000行処理するのに1分ほどかかってしまいます。
勿論、PCのスペックなども影響はしますが、行数が多い状態で一行毎UPDATEするのが
時間がかかっていると思います。
これを高速で、できるならばSQLだけで実現することはできますでしょうか。
よろしくお願いいたします。