python在后定时接着上一次插入的数据插入数据库

用pthon和sql server数据库,使用BULK insert怎么实现每隔十分钟从123.csv文件接着上次插入的行数,继续插入当前的新数据插入order_info表中
123.csv内容如下:

img


所对应的order_info数据表如下:

img

用一个临时文本文件比如lastlineno.txt记录最后从123.csv文件插入的行数
每次打开123.csv时,同时打开lastlineno.txt从中读取最后从123.csv文件插入的行数
将本次需要插入的若干行另存到文件比如currins.txt中,然后调用BULK insert插入currins.txt中内容到数据库表,
插入完成后,更新lastlineno.txt中的行数

【以下回答由 GPT 生成】

我可以为您提供一个解决方案。

  1. 首先,确保您已经安装了Python和MySQL驱动程序。可以使用pip install mysql-connector-python命令来安装mysql-connector-python库。

  2. 创建一个Python脚本,用于连接到MySQL数据库,并插入数据。您可以使用以下代码作为起点:

import mysql.connector

# 连接到MySQL数据库
cnx = mysql.connector.connect(user='your_username', password='your_password',
                              host='your_host',
                              database='your_database')
cursor = cnx.cursor()

# 执行BULK INSERT命令来插入新数据
query = "BULK INSERT order_info FROM 'path/to/123.csv' (FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n')"
cursor.execute(query)

# 从上一次插入的行数开始继续插入
last_inserted_row = cursor.lastrowid

# 做一些后续操作,如提交更改、关闭游标和连接
cnx.commit()
cursor.close()
cnx.close()

注意替换your_usernameyour_passwordyour_hostyour_database为正确的数据库连接信息。另外,将'path/to/123.csv'替换为实际的CSV文件路径。

  1. 为了实现定时插入数据,您可以使用Python的time模块和schedule库。以下是一个示例:
import time
import schedule

def insert_data():
    # 将前面的插入代码放在这里
    print("数据已插入")

# 每隔十分钟调用insert_data函数
schedule.every(10).minutes.do(insert_data)

while True:
    schedule.run_pending()
    time.sleep(1)

这段代码使用schedule.every(10).minutes.do(insert_data)来设置每隔10分钟调用insert_data函数一次。在insert_data函数中,您可以放置之前的插入代码。在无限循环中,通过调用schedule.run_pending()time.sleep(1)来循环运行调度。

请确保在运行以上代码之前,已经将csv文件放置在正确的位置,并且数据库中已经创建了order_info表。

请注意,这只是一个示例,您可能需要根据实际情况进行一些调整和修改。如果需要更复杂的定时任务管理,您还可以考虑使用第三方库,如APScheduler

希望这个解决方案对您有帮助!如果您还有其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^