首页 > 解决方案 > 为什么表导入显示错误 1366,数据看起来不错

问题描述

我从工作台中的视图导出数据,以将此数据上传到其他数据库上的新表中,但是当我尝试上传此数据时,出现以下错误:

- Row import failed with error: ("Incorrect integer value: '' for column 'id_genero_musical' at row 1", 1366

我所做的将这个值 '' 更改为 NULL,但是当我将 NULL 值放在 CSV 文件上时,它显示:

- Row import failed with error: ("Incorrect integer value: 'NULL' for column 'id_genero_musical' at row 1", 1366

但是我的文件没有引号,我的文件如下所示:

4,"Cultura",NULL,"FM",102.5,0,NULL,NULL,"http://www.cultura.fm.br/","",NULL,16,"PR",2969,"Cultura",5,NULL
6,"Abdallah",NULL,"FM",104.1,55,NULL,NULL,"http://www.abdallahfm.com.br/","http://server3.webradios.com.br:9338/9338","57dbac33ef411",16,"PR",2911,"Abdallah",5,3
7,"Aline",NULL,"FM",93.7,0,NULL,NULL,"http://www.alinefm.com.br","http://controleflash.omegasistemas.net:8356/;stream.mp3","57dbac367dbbc",16,"PR",3147,"Aline",5,3
8,"Amiga",NULL,"FM",101.3,40,NULL,NULL,"http://www.amiga101.com.br","http://stream4.painelvox.com.br:7052","57dbac337965d",16,"PR",2878,"Amiga",5,3
9,"Caiuá",NULL,"FM",103.5,80,NULL,NULL,"http://www.caiuafm.com.br/","http://stream1.painelvox.com.br:6946/","57dbac352b125",16,"PR",3015,"Caiuá",5,1

我在 MySQL Workbench 上使用导入按钮,数据库是 MariaDB

我花了2或3天试图解决这个问题,但没有成功,请帮助我。

感谢你们!!

编辑1:

Workbench 假设 NULL 值是文本,而不是 NULL 值,如果假设它是真正的 NULL 值,我该如何处理它来导入 CSV 文件?

标签: mysqlimportmariadbload-data-infile

解决方案


我不使用 mysql 工作台导入向导,因为坦率地说它很讨厌,而且我从来没有找到一种方法来设置 OPTIONALLY ENCLOSED BY 或 LINES TERMINATED BY。您可能想尝试使用

LOCAL INFILE <filepath> INTO TABLE <schema.table> 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\r\n' 
(id_emissora, ds_nome, id_tipo_emissora, ds_modulacao, ds_frequencia, nr_alcance,
perc_alcance, qt_habitantes_alcance, ds_url, ds_streaming, ds_id_anatel, id_uf, ds_uf, id_municipio, ds_municipio, id_regiao, id_genero_musical);

如果您在 nix 框中,请注意编码问题 LINES TERMINATED BY '\r\n' 可能需要修改为 LINES TERMINATED BY '\n'

这个负载在win10上对我来说很好,mariadb


推荐阅读