出于某种原因,在将大量数据加载到下表(来自单个文件)之后,所有值都注册为0。
CREATE TABLE secondTable
(
freq int NULL,
w1 int NULL,
w2 int NULL,
w3 int NULL
)
然后加载数据:
LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE secondTable
由于某种原因,所有数据都显示为0.数据文件为1.0GB(几乎没有前所未有)。数据文件还具有与已成功加载到其他表中的其他数据文件相同样式的适当格式的标头。
问题显然与装载过程中的某些警告有关:
Query OK, 18976277 rows affected, 65535 warnings (5 min 49.74 sec)
Records: 18976277 Deleted: 0 Skipped: 0 Warnings: 75905108
以下是我收到的警告类型:
************* 1.行*************级别:警告代码:1265消息:第1行的'freq'列的数据被截断
************* 2.行*************级别:警告代码:1366消息:不正确的整数值:行'列'w1''' 1
************* 3.行*************级别:警告代码:1366消息:不正确的整数值:行'列'w2''' 1
************* 4.行*************级别:警告代码:1261消息:第1行不包含所有列的数据
************* 5.行*************级别:警告代码:1366消息:不正确的整数值:''对于行'列'freq' 2
************* 6.行*************级别:警告代码:1366消息:不正确的整数值:行'列'w1''' 2
************* 7.行*************级别:警告代码:1366消息:不正确的整数值:''对于行'w2'行2
************* 8.行*************级别:警告代码:1366消息:不正确的整数值:''对于行'w3'行2
************* 9.排*************
这里是文件的前几行 - 它的制表符分隔,每个条目都在它自己的行上。 应该工作,但不是!
5 298 292
1 26361 1626 245
1 167229 9927 19240
在Python中,这些行看起来像这样(ASCII?):
\ X001 \ X00 \吨\ X006 \ X00 \吨\ X002 \ X008 \ X001 \ X005 \ X001 \ X00 \吨\ X002 \ X007 \ X004 \ X003 \ X002 \ X 004 \ X00 \ r \ X00 \ ñ
更新:我通过使用解决了这个问题 file = codecs.open('data.txt','r','utf16') 在Python中,然后写入一个新文件在MySQL中打开。显然,它是用Little Endian UTF-16格式化的。