mysql - 将大型 CSV 导入 MySQL57 时出现问题 - 某些列中的整数值不正确

标签 mysql

我在将 800 MB CSV 文件导入 MySQL 5.7 时遇到问题。

基本上,我收到 3 列的警告,具体行如下:

5290818 row(s) affected, 6 warning(s): 1366 Incorrect integer value: '' for column 'hotel_id' at row 308 1366 Incorrect integer value: '' for column 'currency_id' at row 336 1366 Incorrect integer value: '' for column 'hotel_id' at row 339 1366 Incorrect integer value: '' for column 'available_cnt' at row 7399 1366 Incorrect integer value: '' for column 'available_cnt' at row 7508 1366 Incorrect integer value: '' for column 'available_cnt' at row 7700 Records: 5290818 Deleted: 0 Skipped: 0 Warnings: 6

我知道这需要用用户变量替换有问题的列,并执行一些检查。

但是,我不明白语法,有人能给我解释一下吗?

谢谢!

这是我用来将CSV文件导入MYSQL的

LOAD DATA LOCAL INFILE 'C:/Users/Li/Downloads/offer.csv' 
INTO TABLE offer
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'
IGNORE 1 LINES;

下面是创建表的代码:

CREATE TABLE `primary_data`.`oFfer` (
  `id` INT NOT NULL,
  `hotel_id` INT NULL DEFAULT NULL,
  `currency_id` INT NULL DEFAULT NULL,
  `source_system_code` VARCHAR(64) NOT NULL,
  `available_cnt` INT NULL DEFAULT NULL,
  `sellings_price` FLOAT NOT NULL,
  `checkin_date` DATE NOT NULL,
  `checkout_date` DATE NOT NULL,
  `valid_offer_flag` TINYINT(1) NOT NULL,
  `offer_valid_from` DATETIME NOT NULL,
  `offer_valid_to` DATETIME NOT NULL,
  `breakfast_included_flag` TINYINT(1) NOT NULL,
  `insert_datetime` DATETIME NOT NULL,
   PRIMARY KEY (`id`));

最佳答案

由于只有少量项目,因此可以手动处理此任务。首先要注意的是 mysql 不提供任何关于“默认排序顺序”的保证。然而,由于这是一个新表,我们可以确信行返回的顺序与插入时的顺序相同。因此以下查询将向您显示 308 处的内容:

SELECT * FROM offer LIMIT 307, 1

请注意,偏移量必须比实际行号小 1。现在您可以使用正确的值更新它(使用上述查询显示给您的 id)

UPDATE offer set hotel_id = something where id = someid

重复 5 次即可完成。

关于mysql - 将大型 CSV 导入 MySQL57 时出现问题 - 某些列中的整数值不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993737/

相关文章:

MySQL CAST 确实需要它的甜蜜时光

mysql - mySQL中数据替换时如何忽略错误?

MYSQL/Coldfusion 替换注册符号不起作用

php - 使用 PHP 从 MediaWiki 数据库中提取压缩文本

php - MySQL 选择并锁定以便使用 PHP 进行更新

mysql - 具有 2 个连接的 SQL 查询

mysql - MySQL docker容器的性能问题

php - 顺序和选择子句中的 Full Group BY 错误

php - 如果出现故障,我可以修复 ID 号码吗?

php - MySQL JOINS 用例