/** *烟丝总重量 */ select ROUND (sum(quantity) ,1 ) weight ,unit_id from messpdb.silk_stock a where mat_id >0 group by unit_id /** *烟丝库存比 */ select aa.ids,ROUND (aa.c1/bb.c2 ,3 )*100 from (select 1 as ids,count(box_code) c1 from messpdb.silk_stock a where mat_id >0 group by ids ) aa, (select 1 as ids,count(box_code) c2 from messpdb.silk_stock a group by ids )bb where aa.ids=bb.ids 我想把这两个sql语句加到上面的脚本中,同样无限循环抓取数据,更新到我的数据库
时间: 2024-02-27 12:53:46 浏览: 75
好的,可以将这两个 SQL 查询语句加到上面的 Python 代码中,实现无限循环抓取数据并更新到目标数据库中。
具体实现方式见下方代码(注意替换数据库连接信息和 SQL 查询语句):
```python
import pymysql
import time
while True:
# 连接源数据库
src_conn = pymysql.connect(host='10.43.64.110', port=3306, user='selectuser', password='Xy@123456', database='messpdb')
print("连接源数据库成功")
# 连接目标数据库
dst_conn = pymysql.connect(host='10.43.144.231', port=3306, user='root', password='123456', database='czjsc')
print("连接目标数据库成功")
# 创建源游标对象
src_cursor = src_conn.cursor()
# 创建目标游标对象
dst_cursor = dst_conn.cursor()
# 编写SQL查询语句
sql1 = "select ROUND (sum(quantity) ,1 ) weight ,unit_id from messpdb.silk_stock a where mat_id >0 group by unit_id"
sql2 = "select aa.ids,ROUND (aa.c1/bb.c2 ,3 )*100 from (select 1 as ids,count(box_code) c1 from messpdb.silk_stock a where mat_id >0 group by ids) aa, (select 1 as ids,count(box_code) c2 from messpdb.silk_stock a group by ids)bb where aa.ids=bb.ids"
# 执行SQL查询语句
src_cursor.execute(sql1)
results1 = src_cursor.fetchall()
src_cursor.execute(sql2)
results2 = src_cursor.fetchall()
print("查询数据库成功")
# 更新数据到目标数据库
for row in results1:
weight = row[0]
unit_id = row[1]
# 将数据更新到目标数据库中
update_sql = "update cs_list set weight=%s, unit_id=%s where id=1"
dst_cursor.execute(update_sql, (weight, unit_id))
for row in results2:
ids = row[0]
stock_ratio = row[1]
# 将数据更新到目标数据库中
update_sql = "update cs_list set stock_ratio=%s where id=1"
dst_cursor.execute(update_sql, stock_ratio)
print("更新数据成功")
# 提交事务并关闭连接
dst_conn.commit()
dst_cursor.close()
src_cursor.close()
dst_conn.close()
src_conn.close()
print("断开数据库连接成功")
time.sleep(1)
```
注意,这里将结果更新到目标数据库的表格中假设了 id=1,如果目标数据库中的表格不是这个,需要进行相应修改。
阅读全文