mysql - 如何处理 csv 导入时的 'data truncated for column' 警告?

标签 mysql sql

我正在尝试将数据从文本文件导入到 mysql-5.5 中的表中。这是表创建代码:

CREATE TABLE `price` (
`symbol` VARCHAR(20) NOT NULL,
`date` DATE NOT NULL,
`open` DOUBLE NULL DEFAULT NULL,
`high` DOUBLE NULL DEFAULT NULL,
`low` DOUBLE NULL DEFAULT NULL,
`close` DOUBLE NULL DEFAULT NULL,
`volume` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
PRIMARY KEY (`date`, `symbol`)
)
ENGINE=InnoDB
;

这是导入代码。

INFILE 'c:/temp/DTB3.csv'
INTO TABLE price 
FIELDS TERMINATED BY ','
(symbol, date, @dummy, @dummy, close);

这是一些数据行。

10,2019-01-30,1.00,1.00,50459.4301
10,2019-01-31,1.00,1.00,50477.9307
10,2019-02-01,1.00,1.00,50496.4382

这是一个示例警告:

Warning 1,265 Data truncated for column 'close' at row 12

结果表中的数据看起来正确。

enter image description here

我已经尝试了价格字段的 double 和浮点值。

为什么我会收到这些警告以及我该怎么办?

最佳答案

我最好的猜测是,您在表中声明了 7 列,但只提供了 5 列的数据。

尝试为导入数据中缺少的(空)字段添加逗号,以便导入明确知道没有要加载的值。

像这样:

10,2019-01-30,1.00,1.00,50459.4301,,
10,2019-01-30,1.00,1.00,50459.4301,,
10,2019-01-30,1.00,1.00,50459.4301,,

关于mysql - 如何处理 csv 导入时的 'data truncated for column' 警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563788/

相关文章:

php - 如何在 MySQL 和 PHP 中选择没有日期的年份?

mysql - PROCEDURE 的参数数量不正确

带有时间间隔的日期之间的mysql查询

mysql - 如果向现有 MySQL 集合添加元素会发生什么?

php - 在一条语句中插入 IGNORE INTO 和 UPDATE

php - 使用查询更新 PDO 中的表时出现语法错误

java - 在Android中用java代码访问mysql

mysql - 我可以将这些查询压缩成 less

php - 如何在插入前检查两个条件?

sql - 带有 BigInt 的 Teradata 和 SAS