问题
将DataFrame数据保存到mysql中时,出现错误提示:
  BLOB/TEXT column used in key specification without a key length

原因
出问题的原因是DataFrame对象索引的数据类型是TEXT/BLOB或其从属的类型,当将其作为mysql中的主键的时候,如果这些数据类型缺少明确的长度值,mysql无法保证主键的唯一性,因为这个主键是一个变量,其长度是动态的。所以当使用 TEXT/BLOB类型的数据作为索引的时候,数据的长度必须提供给mysql,使其能够明确键的长度。但是mysql不支持对TEXT/BLOB长度的限制。

同样的错误也会出现在试图将非TEXT/BLOB类型的数据列转换成TEXT/BLOB类型,这些列被定义成独立的索引。AlterTable命令会失效。

解决方法
解决这个问题的方式之一是舍弃TEXT/BLOB列作为索引,或者设置另外的列作为主键。如果不得不设置成主键,而想限制TEXT/BLOB的长度,可以尝试使用VARCHAR并设置其长度。VARCHAR默认长度是255个字符,并且其长度必须在其声明之后在其括号中设置,例如,VARCHAR(200)将其设置成200个字符长度。

将DataFrame数据输出到mysql时强制将索引转换成VARCHAR并限制其长度,其中的code是索引的标签:

1 data.to_sql(‘data’,engine,if_exists=‘replace’,dtype={‘code’:VARCHAR(data.index.get_level_values(‘code’).str.len().max())})

参考
http://stackoverflow.com/questions/38522513/can-pandas-with-mysql-support-text-indexes

http://stackoverflow.com/questions/1827063/mysql-error-key-specification-without-a-key-length

pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法相关推荐

  1. 1170 - BLOB/TEXT column 'CustomerName' used in key specification without a key length

    [DTF] Data Transfer 企管宝_2_CRM start [DTF] Getting tables [DTF] Analyzing table: `CustomerInfo` [DTF] ...

  2. mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

    离线消息保存到 MySQL 搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例: $ brew install mysql $ brew services ...

  3. Beautifulsoup爬取起点中文网 保存到mysql

    一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...

  4. 使用python scrapy爬取全国小区信息(包括小区价格,经纬度,面积,户数等),并保存到mysql和excel

    目标 此次爬取的网站是楼盘网,因为只爬取小区信息,所以先从深圳小区(http://sz.loupan.com/community/)网页入手分析,然后发散爬取至全国. 爬取的信息包括 省,所属市,所属 ...

  5. python爬虫: 爬取boss网站数据 保存到mysql

    爬取boss数据并保存到mysql boss的反爬虫控制尤其恶心 cookies大概用3次左右就不能用了 所以爬取不了太多东西 只可用来学习 等学习完逆向爬虫课程 再来挑战挑战 example.py ...

  6. SparkStreaming读取Kafka的Json数据然后保存到MySQL

    一般我们使用SparkStreaming消费kafka数据,获取到数据后解析,使用JDBC的方式写入数据库,如下所示. 以上的方式没什么毛病,但是当我们消费的kafka数据类型比较多样的时候,我们需要 ...

  7. kafka偏移量保存到mysql里_SparkStreaming+kafka保存offset的偏移量到mysql案例

    MySQL创建存储offset的表格 mysql> use test mysql> create table hlw_offset( topic varchar(32), groupid ...

  8. mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库

    (大数据挖掘-(七):读懂MySql数据库操作)(大数据挖掘神器--scrapy spider爬虫框架(五):解析多层网页) 通过往期的文章分享,我们了解了如何爬取想要的数据到Items中,也了解了如 ...

  9. SparkSQL 将统计结果保存到Mysql

    在MySQL创建表 create table day_netType_access_topn_stat ( day varchar(8) not null, uid bigint(10) not nu ...

最新文章

  1. python中的协程(二)
  2. 数据结构之列表 timeit
  3. Ubuntu下Django+uWSGI+nginx部署
  4. libev源码分析---整体设计
  5. php password_hash和password_verify
  6. TAUCS库的编译(vs2010)
  7. uni-app 封装请求
  8. jgit - java实现git操作
  9. Gartner数据:RPA以75.6%增长率成2019年Q1增速最快的企业级软件(附全球十大RPA市场数据)
  10. php千图网解析,PHP素材资源解析平台源码V8.0(thinkPHP框架内核)
  11. 从零开始设计一款APP之Android设计规范篇
  12. MySQL项目--电商平台--数据库搭建
  13. python单行注释和多行注释分别用什么表示_Python多行注释和单行注释用法详解
  14. 最近在关注浏览器,先转一篇游戏浏览器的评测。
  15. mistake of android
  16. android实现微信付款功能,Android实现微信支付功能详解
  17. 沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试“星云测试“的使用攻略
  18. springboot项目在外部tomcat运行出现的问题
  19. CCNA 中文读书笔记四
  20. SSM框架体会和小结(短学期实训)

热门文章

  1. Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
  2. eclipse failed to load the jni jvm.dll
  3. ios 网络请求后 Crash
  4. Bugzilla安装过程
  5. 31天重构学习笔记3. 提升方法
  6. NetBeans 时事通讯(刊号 # 43 - Feb 03, 2009)
  7. Define change document object
  8. sql server 2005 T-SQL @@TRANCOUNT (Transact-SQL)
  9. 全新ARM base PocketPC 2003 Emulator Beta 已登場。
  10. NYOJ 括号配对问题