从mysql表中逐个选择记录 - 动态表连续写入更多记录

时间:2012-06-15 20:28:23

标签: python mysql

我想从MySQL表中一次选择一条记录。我在这里找到了类似的帖子 -

How to select records one by one without repeating

但是,在我的情况下,表大小不固定,数据被连续添加到表中,我想从该表中一次选择一个记录。另外,我使用python连接到mysql数据库并对每条记录进行处理。有什么指针吗?

P.S。 :表的大小非常大,因此每次都无法计算表中的记录数

1 个答案:

答案 0 :(得分:1)

此功能未内置于SQL中。

如果表上有一个密集的递增索引列,那么你就这样做了:

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

对于某些数据库,无论您是否需要,都会内置这样的列,通常称为“RowID”或“Row ID”;如果没有,您可以随时明确添加这样的列。

如果可以跳过这些值(通常它们可以,例如,如果没有其他原因,因为有人可以从中间删除一行),你必须能够处理一个返回0行的选择。

唯一的问题是没有办法告诉你什么时候完成。但这是您最初的问题陈述中固有的:数据正在不断添加,而您事先并不知道它的大小,所以您怎么能这样做?如果您需要知道生产者何时完成,它必须以某种方式(可能通过数据库中的另一个表)为您提供它创建的最高rowid。