pandas对象保存到mysql出错提示“BLOB/TEXT column used in key specification without a key length”解决办法
问题
将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”解决办法相关推荐
- 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] ...
- mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...
离线消息保存到 MySQL 搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例: $ brew install mysql $ brew services ...
- Beautifulsoup爬取起点中文网 保存到mysql
一.分析网页 目标网站:起点中文网 目标数据:类别(categoryName)小说书名(bookName) 小说链接(middleUrl)字数(wordsNums) 作者(updateTiems) 最 ...
- 使用python scrapy爬取全国小区信息(包括小区价格,经纬度,面积,户数等),并保存到mysql和excel
目标 此次爬取的网站是楼盘网,因为只爬取小区信息,所以先从深圳小区(http://sz.loupan.com/community/)网页入手分析,然后发散爬取至全国. 爬取的信息包括 省,所属市,所属 ...
- python爬虫: 爬取boss网站数据 保存到mysql
爬取boss数据并保存到mysql boss的反爬虫控制尤其恶心 cookies大概用3次左右就不能用了 所以爬取不了太多东西 只可用来学习 等学习完逆向爬虫课程 再来挑战挑战 example.py ...
- SparkStreaming读取Kafka的Json数据然后保存到MySQL
一般我们使用SparkStreaming消费kafka数据,获取到数据后解析,使用JDBC的方式写入数据库,如下所示. 以上的方式没什么毛病,但是当我们消费的kafka数据类型比较多样的时候,我们需要 ...
- kafka偏移量保存到mysql里_SparkStreaming+kafka保存offset的偏移量到mysql案例
MySQL创建存储offset的表格 mysql> use test mysql> create table hlw_offset( topic varchar(32), groupid ...
- mysql打印语句_大数据挖掘—(八):scrapy爬取数据保存到MySql数据库
(大数据挖掘-(七):读懂MySql数据库操作)(大数据挖掘神器--scrapy spider爬虫框架(五):解析多层网页) 通过往期的文章分享,我们了解了如何爬取想要的数据到Items中,也了解了如 ...
- SparkSQL 将统计结果保存到Mysql
在MySQL创建表 create table day_netType_access_topn_stat ( day varchar(8) not null, uid bigint(10) not nu ...
最新文章
- python中的协程(二)
- 数据结构之列表 timeit
- Ubuntu下Django+uWSGI+nginx部署
- libev源码分析---整体设计
- php password_hash和password_verify
- TAUCS库的编译(vs2010)
- uni-app 封装请求
- jgit - java实现git操作
- Gartner数据:RPA以75.6%增长率成2019年Q1增速最快的企业级软件(附全球十大RPA市场数据)
- php千图网解析,PHP素材资源解析平台源码V8.0(thinkPHP框架内核)
- 从零开始设计一款APP之Android设计规范篇
- MySQL项目--电商平台--数据库搭建
- python单行注释和多行注释分别用什么表示_Python多行注释和单行注释用法详解
- 最近在关注浏览器,先转一篇游戏浏览器的评测。
- mistake of android
- android实现微信付款功能,Android实现微信支付功能详解
- 沧海一声笑,移动应用的CRASH原因我找到! --记最新款数字化测试“星云测试“的使用攻略
- springboot项目在外部tomcat运行出现的问题
- CCNA 中文读书笔记四
- SSM框架体会和小结(短学期实训)
热门文章
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
- eclipse failed to load the jni jvm.dll
- ios 网络请求后 Crash
- Bugzilla安装过程
- 31天重构学习笔记3. 提升方法
- NetBeans 时事通讯(刊号 # 43 - Feb 03, 2009)
- Define change document object
- sql server 2005 T-SQL @@TRANCOUNT (Transact-SQL)
- 全新ARM base PocketPC 2003 Emulator Beta 已登場。
- NYOJ 括号配对问题