找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5337|回复: 5

[已解决] mysql #1170错误 BLOB/TEXT Column Used in Key Specification Without

1

主题

5

帖子

5

积分

贫民

积分
5
laozhang 发表于 2016-7-12 15:51:51 | 显示全部楼层 |阅读模式
mysql #1170错误(42000) BLOB/TEXT Column Used in Key Specification Without a Key Length

批量GET到的datafram数据,在写入MYSQL数据库的时候,提示这个错误,请问怎么解决?

回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-12 17:31:54 | 显示全部楼层
应该是你的mysql索引设置错误吧。
MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的前N个字符.索引设置索引的时候需要设置一个长度
可以这样设置:
alter table test add index col (col(10))
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
laozhang  楼主| 发表于 2016-7-12 20:51:58 | 显示全部楼层
本帖最后由 laozhang 于 2016-7-12 20:54 编辑
blueelwang 发表于 2016-7-12 17:31
应该是你的mysql索引设置错误吧。
MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的前N个字符.索引 ...

我是批量写入数据库的,gupiaodaima.txt里有2000多行股票代码。

from sqlalchemy import create_engine
engine = create_engine('mysql://root:88888888@127.0.0.1/daydata?charset=utf8')
import tushare as ts




count = 0  #count+1就是当前行
bufferlines = {}#把所有行都存起来
# 读取股票代码
with open("c:\\jibenxinxi\gupiaodaima.txt",'r') as f:
    for line in f.readlines():
        line = line.strip()
        bufferlines[count] = line
      
        df = ts.get_hist_data(bufferlines[count]) #读取股票日线数据,这一步可以实现
        df.to_sql(bufferlines[count], engine)#这一句总是提示错误
        count =+1
    f.close()
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
laozhang  楼主| 发表于 2016-7-13 07:00:05 | 显示全部楼层
用这个写入方法 解决了      
pd.io.sql.to_sql(df, bufferlines[count], engine, flavor='mysql', if_exists='append', index=False)
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-13 16:50:19 | 显示全部楼层
laozhang 发表于 2016-7-13 07:00
用这个写入方法 解决了      
pd.io.sql.to_sql(df, bufferlines[count], engine, flavor='mysql', if_ex ...

那具体出错的原因是什么呢?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

5

积分

贫民

积分
5
laozhang  楼主| 发表于 2016-7-13 21:26:15 | 显示全部楼层
blueelwang 发表于 2016-7-13 16:50
那具体出错的原因是什么呢?

不知道啊,我现在只需要知其然 不用知其所以然
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表