python 資料庫遷移

2021-10-04 17:29:23 字數 2028 閱讀 1095

匯入mysql庫的方法常用的有:

pymysql中使用游標:適用於固定物件的單次或批量插入

sqlalchemy結合pandas實現:適用於將sql查詢結果插入庫表,可以限制index。

1、pymysql模組

import pandas as pd

import pymysql

conn_mysql=pymysql.connect(host=

'',user=

'',password=

'',db=

'',port=

'',charset=

'utf8'

)

pandas讀取

data=pd.read_sql(

"select 語句"

,conn_mysql)

print

(data.head(

))

游標讀取

cur_mysql=conn_mysql.cursor(

)#獲取游標

cur_mysql.execute(

"select語句"

,s)#執行sql,若select語句中有引數%s,則在sql後需要設定引數的指定物件s(多個引數用(s1,s2,...))

data=cur_mysql.fetchall(

)#獲取結果

游標匯出

cur_mysql.execute(

"insert into 表名(欄位1,欄位2) values(%s,%s)"

,(s1,s2)

)

2、sqlalchemy模組

from sqlalchemy import create_engine #調出模組方法

engine=create_engine(

'mysql+pymysql://user:password@ip/db'

,encoding=

'utf8'

)#連線mysql庫

data=engine.execute(

"select 語句"

)#執行sql

res=data.fetchall(

)#獲取結果

res.to_sql(

'表名'

,con=engine,if_exists=

,index=

false

)

import cx_oracle

conn_oracle=cx_oracle.connect(

'user'

,'password'

,'ip:port/db'

)

pandas讀取

data=pd.read_sql(

"select 語句"

,conn_oracle)

print

(data.head(

))

游標讀取

cur_oracle=conn_oracle.cursor #獲取游標

cur_oracle.execute(

"select 語句"

)#執行sql

data=cur_oracle.fetchall(

)#獲取結果

pandas匯出

data.to_sql(

"insert語句"

,conn_oracle)

游標匯出

for r in data:

cur_oracle.execute(

"insert into 表(欄位1,欄位2) values(%s,%s)"r)

python資料庫遷移指令碼

usr bin env python coding utf 8 import json from sqlalchemy import engine create engine postgresql metadata metadata engine t batch copy表示新版的批次表 t bat...

python遷移redis資料庫

python遷移redis資料庫 python3遷移redis資料庫,注意資料寫入後的編碼問題。usr bin python3 coding utf 8 import redis redis 1 redis.strictredis host 192.168.2.3 port 6379 passwor...

資料庫遷移

這期專案,需要將另外乙個系統a與現有系統b整合,由於時間比較緊,直接採用遷移oracle資料庫物件的方式,發現之前評估的方案不是特別完善,首先 1 a資料庫為gbk編碼,b資料庫是utf 8編碼格式,a資料遷移需要進行中文字段擴容 至少1.5倍 2 a資料庫需要做效能評估,歷史資料遷移涉的方式,兼顧...