mysql #1170错误(42000) BLOB/TEXT Column Used in Key Specification Without a Key Length
批量GET到的datafram数据,在写入MYSQL数据库的时候,提示这个错误,请问怎么解决?
应该是你的mysql索引设置错误吧。
MySQL只能将BLOB/TEXT类型字段设置索引为BLOB/TEXT数据的前N个字符.索引设置索引的时候需要设置一个长度
可以这样设置:
alter table test add index col (col(10))
我是批量写入数据库的,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()
用这个写入方法 解决了
pd.io.sql.to_sql(df, bufferlines[count], engine, flavor= mysql , if_exists= append , index=False)
那具体出错的原因是什么呢?
不知道啊,我现在只需要知其然 不用知其所以然