作为一个小白,这是第一篇帖子。
希望记录自己一路走来遇到的问题,也希望大佬指正。
一、背景:
用Python将数据逐行插入到MySQL。
二、问题:
但在python运行时发现总是报错(1265, Data truncated for column ‘num‘ at row 1)。
三、查因:
1、原以为是做的数据格式有问题,经过查找数据格式没有问题。
2、是不是建表时的主键有问题:因为当时把日期 DATE 作为主键,但经过查看要导入的数据对应的类型是 '2021-07-21 00:00:00' ,因此把主键的数据类型改为 DATETIME。但结果还是报错(1265, Data truncated for column ‘num‘ at row 1)。
3、是不是第二列及后续列的数据格式问题:因为源数据类型为 ('2021-07-21 00:00:00', 4.0, 3.9, 4.0),而建表时第二列数据类型为 FLOAT(5.2),接着改为FLOAT(10) 还是报错,最后直接改为 VARCHAR(100),解决问题,实现秒级插入。
四、总结:
建表时的数据类型一定要留意,只要不影响原则问题,能放宽限制就放宽。
这个问题耗费了一天时间才解决,自知是小白,还是记录下。
但解决问题后,我觉得并没有大问题,主要还是细心,在设计数据库时也要在坚守原则情况下留有一定冗余空间。
致敬!