oldbee0925 2022-05-16 15:00 采纳率: 91.4%
浏览 115
已结题

一条简单的sql删除语句,在mysql(Navicat)中正常执行,在python(pandas)中执行报各种错误,请教!

delete from all_stock_weekly where trade_date = STR_TO_DATE('20220513','%Y%m%d')

以上是在mysql(Navicat)中正常执行,在python环境中,我用了以下配置和语句,在不同的前提条件下报了几类错,反正就是不能执行:

import pandas as pd
import pymysql
from sqlalchemy import create_engine #导入了2类数据连接包
db=pymysql.Connect(host='127.0.0.1',user='root',passwd='######',db='myfinance')#数据库连接
engine=create_engine('mysql+pymysql://root:#####@127.0.0.1:3306/myfinance') #连接本机的金融mysql数据库

(一)、第一类错误:
我的一个df,用不同的引擎先导入后删除,报错:

df.to_sql("all_stock_weekly",engine,if_exists='append', index=False)#导入数据
pd.read_sql("delete from all_stock_weekly where trade_date < str_to_date('20220513','%Y%m%d')",db)#紧接着删除同样的数据

未能成功执行。错误提示如下:

    405     if isinstance(pandas_sql, SQLiteDatabase):
--> 406         return pandas_sql.read_query(
    407             sql,
    408             index_col=index_col,

C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\sql.py in read_query(self, sql, index_col, coerce_float, params, parse_dates, chunksize)
   1632         args = _convert_params(sql, params)
   1633         cursor = self.execute(*args)
-> 1634         columns = [col_desc[0] for col_desc in cursor.description]
   1635
   1636         if chunksize is not None:

TypeError: 'NoneType' object is not iterable

此时再返回Navicat中执行删除语句,报错“1205 - Lock wait timeout exceeded; try restarting transaction”
清除线程,Navicat正常删除了。
然后返回python,再次执行“pd.read_sql("delete from all_stock_weekly where trade_date < str_to_date('20220513','%Y%m%d')",db)#紧接着删除同样的数据”,报错:
Execution failed on sql: delete from all_stock_weekly where trade_date < str_to_date('20120511','%Y%m%d')
(2013, 'Lost connection to MySQL server during query ([WinError 10053] 你的主机中的软件中止了一个已建立的连接。)')
unable to rollback

请教各位,这是怎么回事?

  • 写回答

1条回答 默认 最新

  • oldbee0925 2022-05-17 11:40
    关注

    没人回答,我自己来搞个总结。
    用pymysql直接操作sql没问题,用dataframe的to_sql方法无一例外失败。在没有人解答之前,以后我就这么干了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么