mysql - 并非所有参数都在使用 dataframe.to_sql 的 SQL 语句中使用
问题描述
我无法使用 pandas dataframe.to_sql 诊断错误
我首先使用connection = mysql.connector.connect
然后我尝试使用将我的数据插入到mysql数据库中
df.to_sql('SData', con = connection, if_exists = 'append', chunksize = 1000)
我得到错误:
Execution failed on sql 'SELECT name FROM sqlite_master WHERE type='table' AND name=?;': Not all parameters were used in the SQL statement
SData 表和 df 具有相同的字段/名称,除了表有一个自动递增的主键,所以我唯一能想到的是,由于主键,并非所有字段都匹配......
我也不明白为什么 to_sql 中会有一个 select 语句,除非它正在检查字段名称或类似的东西?
数据字段是:
Database:
SID Primary key
SSID int(foreign key)
FirstValue decimal
SecondValue decimal
DF:
FirstValue
SecondValue
SSID
键入此内容时,我意识到数据框的顺序不同。不会认为这将是一个问题,但会调查这个
谢谢
解决方案
问题是我试图mysql.connector
用作连接(引擎)并且必须将 sqlalchemy create_engine 与 mysql+pymysql 一起使用。
然后我不得不 to_sql 创建一个索引字段,所以必须设置 index=False,它工作。
这是新字符串:
import pymysql
engine = create_engine("mysql+pymysql://" + Cfg.username + ":" + Cfg.password + "@" + Cfg.host + "/" + Cfg.database)
df.to_sql('SData', con = engine, if_exists = 'append',index = False, chunksize = 1000)
谢谢
推荐阅读
- ms-access - 对联结表实现感到困惑
- javascript - 如何使用 js map correclty 下面的代码抛出错误?
- r - R中的Magick在单独选择时会从帧中删除数据
- reactjs - 变换:翻译动画不起作用
- qt - 我在让相机示例在 qt 上运行时遇到了一些麻烦
- json - 使用数据集从 Hive 中的字符串中提取 json 字段
- javascript - 尝试使用 javascript 从 api 获取数据
- javascript - 如何替换Vuejs路由器中的一个参数
- blockchain - 关于智能合约的一些基本问题
- unity3d - 为什么当我停止点击时我的计时器在 Unity 上不起作用?