我在MySQL中有一个名为word的只插入的表。一旦行数超过1000000,我想删除表的前100000行。在
我在python中使用mysqldb,因此有一个全局变量:
wordcount = cursor.execute("select * from word")
将返回python环境中表中的行数。然后,每次插入新行时,字数就增加1。然后检查行数是否大于1000000,如果大于1000000,我想删除前100000行:
^{pr2}$我从这个帖子中得到了这个想法: Delete first X lines of a database
但是,这个SQL在删除我的整个表时结束了,我在这里遗漏了什么?在
谢谢。在
如果您的表“word”有ID字段(key auto_increment field),您可以编写一些删除前100000行的存储过程。存储过程的关键部分是:
您也可以在ID字段上建立一些索引,以加快查询速度。在
我不认为这是获取行数的正确方法。您需要将语句更改为拥有
count(*)
,然后使用mysql游标.fetchone()获取结果的元组,其中第一个位置(有点像wordcount = cursor.fetchone()[0]
)将具有正确的行数。在你的delete语句看起来不错,也许你有显式的事务处理?在这种情况下,您必须在删除之后调用db对象上的
commit()
。在相关问题 更多 >
编程相关推荐