各位大神們:
小弟近日想將資料上傳到mssql,連線有成功,但是上傳資料時,卻會出現以下畫面,然後資料並未上傳成功,想問問這是甚麼意思? 謝謝
ps: 已確認上傳的資料欄位名稱、格式皆與資料表內容相同。
from sqlalchemy import create_engine
import pyodbc
import sqlalchemy
import pandas as pd
engine = sqlalchemy.create_engine('mssql+pyodbc://user:密碼@server:port/db?driver=SQL+Server')
con = engine.connect()
data = {'abc':['test'],
'df':[45],
'sda':[5],
'zcz': [1],
'czx':[5],
'dad':[6],
'12':[7],
'saf':[8],
'aaa':[9],
'ccc':[10],
'bb':[11],
'a':[12]
}
data = pd.DataFrame(data)
data.to_sql(name='資料表', con=con, if_exists='append', index = False)
建議直接在 con 放 engine.
data.to_sql(name='資料表', con=engine, if_exists='append', index = False)
如果要放 connnection
那要改成
with engine.connect() as con:
data.to_sql(name='資料表', con=con, if_exists='append', index = False)
或是
with con.begin():
data.to_sql(name='資料表', con=con, if_exists='append', index = False)
或是在你的程式最後加上
con.commit()
con.close()
pandas.to_sql 是基於 SQLAlchemy 的。
請參考
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html
https://docs.sqlalchemy.org/en/13/core/connections.html
SQLAlchemy 近期會有比較大的更新,讀的時候注意一下內容是不是已經被棄用。