You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
utils/MYSQL/transferData_python.py

89 lines
2.8 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import pymysql
# 数据库A的连接信息
db_a_config = {
'host': '192.168.0.222',
'user': 'root',
'password': '1qazse42W3',
'db': 'ry',
'charset': 'utf8mb4',
}
# 数据库B的连接信息
db_b_config = {
'host': '192.168.0.222',
'user': 'root',
'password': '1qazse42W3',
'db': 'mojin',
'charset': 'utf8mb4',
}
try:
# 连接数据库A
db_a_conn = pymysql.connect(**db_a_config)
db_a_cursor = db_a_conn.cursor()
# 连接数据库B
db_b_conn = pymysql.connect(**db_b_config)
db_b_cursor = db_b_conn.cursor()
stock_basic_map = {}
#查询交易日数据
sql_trade_qurey = 'select date,week,trade from trade_dates where trade = %s and date > "2022-01-01"'
sql_trade = "trading"
db_a_cursor.execute(sql_trade_qurey,sql_trade)
trading_dates = db_a_cursor.fetchall()
#查询基础数据
sql_stockbasic = "select code,name,blemind2,blemind3,listdate from stock_basis"
db_a_cursor.execute(sql_stockbasic)
stock_basic_datas = db_a_cursor.fetchall()
for row in stock_basic_datas:
code,name,blemind2,blemind3,listdate = row
stock_basic_map[code] = (code,name,blemind2,blemind3,listdate)
for row in trading_dates:
trading_date,week,trade = row
print(trading_date)
#查询日交易数据
sql_stock_query = 'select code ,trade_day, open,close,high,low,islimit,isdrop,differrange,trade_days,volumn,amount,differrange10,differrange20,differrange60,avg_volume20,freefloat_market_value,total_market_value,agencies_hold from stocks where trade_day = %s'
db_a_cursor.execute(sql_stock_query,trading_date)
datas = db_a_cursor.fetchall()
print(datas)
print(stock_basic_map)
print(trading_dates)
# 查询数据库A中的数据表a1和a2的数据并进行关联
#db_a_cursor.execute('SELECT a1.id, a1.date, a1.user, a2.userName, a2.count FROM a1 JOIN a2 ON a1.id = a2.id')
#data_to_transfer = db_a_cursor.fetchall()
# 删除数据库B中表c的数据可选如果需要覆盖表c的数据
# db_b_cursor.execute('DELETE FROM c')
# 插入数据到数据库B中的表c中
# for row in data_to_transfer:
# id, date, user, userName, count = row
# sql_insert = f"INSERT INTO c (id, date, user, userName, count) VALUES (%s, %s, %s, %s, %s)"
# db_b_cursor.execute(sql_insert, (id, date, user, userName, count))
# 提交数据到数据库B中
# db_b_conn.commit()
print("数据传输完成!")
except Exception as e:
print(f"出现错误:{e}")
finally:
# 关闭连接
if db_a_cursor:
db_a_cursor.close()
if db_a_conn:
db_a_conn.close()
if db_b_cursor:
db_b_cursor.close()
if db_b_conn:
db_b_conn.close()