1

MySQLテーブルから一度に1つのレコードを選択したい。私はここでSOに関する同様の投稿を見つけました-

繰り返さずにレコードを1つずつ選択する方法

ただし、私の場合、テーブルのサイズは固定されていません。データはテーブルに継続的に追加されているため、このテーブルから一度に1つのレコードを選択したいと思います。また、Pythonを使用してmysqlデータベースに接続し、各レコードを処理しています。ポインタはありますか?

PS:テーブルのサイズが非常に大きいため、毎回、テーブル内のレコード数を計算できません

4

1 に答える 1

1

この機能はSQLに組み込まれていません。

テーブルに密集した増分のインデックス付き列がある場合は、次のようにします。

i = 0
while True:
    # your usual select here, but with "and MyIndexColumn = %d' % (i,)

一部のデータベースには、必要かどうかに関係なく、通常は「RowID」または「RowID」と呼ばれるそのような列が組み込まれています。そうでない場合は、いつでもそのような列を明示的に追加できます。

値をスキップできる場合(通常、たとえば、誰かが中央から行を削除できるという理由以外の理由がない場合)、もちろん、0行を返すselectを処理できる必要があります。

唯一の問題は、いつ終わったかを知る方法がないということです。しかし、それは最初の問題ステートメントに固有のものです。データは継続的に追加されており、データのサイズが事前にわからないので、どうすればよいでしょうか。プロデューサーがいつ完了したかを知る必要がある場合は、何らかの方法で(おそらくデータベース内の別のテーブルを介して)作成した最高のROWIDを提供する必要があります。

于 2012-06-15T21:02:37.297 に答える