注册
登录
查看:494 | 回复:5
老张
mysql #1170错误 BLOB/TEXT Column Used in Key Specification Without
发表于 2023/6/30 12:22:55
楼主

mysql #1170错误(42000) BLOB/TEXT Column Used in Key Specification Without a Key Length

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

兰陵王
发表于 2023/6/30 12:24:12
沙发

应该是你的mysql索引设置错误吧。

MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的前N个字符.索引设置索引的时候需要设置一个长度

可以这样设置:

alter table test add index col (col(10))

老张
发表于 2023/6/30 12:25:29
板凳

我是批量写入数据库的,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()


老张
最佳答案 发表于 2023/6/30 12:27:50
4楼

用这个写入方法 解决了

pd.io.sql.to_sql(df, bufferlines[count], engine, flavor= mysql , if_exists= append , index=False)


兰陵王
发表于 2023/6/30 12:32:49
5楼

那具体出错的原因是什么呢?


老张
发表于 2023/6/30 12:37:21
6楼

不知道啊,我现在只需要知其然 不用知其所以然


立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品