pymysql定时复制表数据
时间: 2023-10-30 18:05:35 浏览: 107
您可以使用Python中的`schedule`库来实现定时复制MySQL表数据。首先,您需要安装`pymysql`和`schedule`库。您可以使用以下命令来安装它们:
```
pip install pymysql
pip install schedule
```
接下来,您可以使用以下代码来实现定时复制表数据:
```python
import pymysql
import schedule
import time
def copy_table_data():
# 建立源数据库连接
source_conn = pymysql.connect(
host='source_host',
user='source_user',
password='source_password',
database='source_database'
)
source_cursor = source_conn.cursor()
# 建立目标数据库连接
target_conn = pymysql.connect(
host='target_host',
user='target_user',
password='target_password',
database='target_database'
)
target_cursor = target_conn.cursor()
try:
# 执行源数据库查询语句
source_cursor.execute('SELECT * FROM source_table')
# 获取查询结果
results = source_cursor.fetchall()
# 插入目标数据库表中
for row in results:
target_cursor.execute('INSERT INTO target_table VALUES (%s, %s, %s)', row)
# 提交事务
target_conn.commit()
print('数据复制成功!')
except Exception as e:
# 发生错误时回滚事务
target_conn.rollback()
print(f'数据复制失败:{str(e)}')
finally:
# 关闭数据库连接
source_cursor.close()
target_cursor.close()
source_conn.close()
target_conn.close()
# 每天执行一次复制任务
schedule.every().day.at('00:00').do(copy_table_data)
while True:
schedule.run_pending()
time.sleep(1)
```
请确保将以下参数替换为实际的数据库连接信息:
- `source_host`: 源数据库主机名
- `source_user`: 源数据库用户名
- `source_password`: 源数据库密码
- `source_database`: 源数据库名称
- `target_host`: 目标数据库主机名
- `target_user`: 目标数据库用户名
- `target_password`: 目标数据库密码
- `target_database`: 目标数据库名称
- `source_table`: 源表名称
- `target_table`: 目标表名称
这段代码将会每天的00:00执行一次复制任务。您可以根据需要进行调整。
阅读全文