标签: load-data-infile

如何将CSV文件导入MySQL表

我有一个来自客户端的非标准化事件日记CSV,我正在尝试将其加载到MySQL表中,以便我可以重构为一种理智的格式.我创建了一个名为"CSVImport"的表,它为CSV文件的每一列都有一个字段.CSV包含99列,因此这本身就是一项非常艰巨的任务:

CREATE TABLE 'CSVImport' (id INT);
ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);
...
ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);
ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);
Run Code Online (Sandbox Code Playgroud)

表中没有约束,并且所有字段都包含VARCHAR(256)值,但包含计数(由INT表示),是/否(由BIT表示),价格(由DECIMAL表示)和文本blurbs(由TEXT代表).

我试图将数据加载到文件中:

LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;
Query OK, 2023 rows affected, 65535 warnings (0.08 sec)
Records: 2023  Deleted: 0  Skipped: 0  Warnings: 198256
SELECT * FROM CSVImport;
| NULL             | NULL        | NULL …
Run Code Online (Sandbox Code Playgroud)

mysql csv load-data-infile

284
推荐指数
11
解决办法
91万
查看次数

MySQL从CSV数据加载NULL值

我有一个文件,可以包含3到4列数字,用逗号分隔.当空字段位于行的末尾时,将定义空字段:

1,2,3,4,5
1,2,3,,5
1,2,3
Run Code Online (Sandbox Code Playgroud)

下表是在MySQL中创建的:

+-------+--------+------+-----+---------+-------+
| Field | Type   | Null | Key | Default | Extra |
+-------+--------+------+-----+---------+-------+
| one   | int(1) | YES  |     | NULL    |       | 
| two   | int(1) | YES  |     | NULL    |       | 
| three | int(1) | YES  |     | NULL    |       | 
| four  | int(1) | YES  |     | NULL    |       | 
| five  | int(1) | YES  |     | NULL    |       | 
+-------+--------+------+-----+---------+-------+

我正在尝试使用MySQL LOAD命令加载数据:

LOAD DATA …
Run Code Online (Sandbox Code Playgroud)

mysql csv load-data-infile

160
推荐指数
4
解决办法
14万
查看次数

对于MySQL中的加载数据infile,访问被拒绝

我一直在PHP中使用MySQL查询,但是当我尝试LOAD DATA INFILE时,我得到以下错误#1045 - Access denied for user 'user'@'localhost' (using password: YES) 有谁知道这意味着什么?

mysql load-data-infile mysql-error-1045

100
推荐指数
6
解决办法
8万
查看次数

MYSQL使用LOAD DATA INFILE从csv导入数据

我将一些包含20000行的数据从CSV文件导入到Mysql中.

CSV中的列与MySQL表的列的顺序不同.如何自动分配与Mysql表列对应的列?

当我执行

LOAD DATA INFILE'abc.csv' INTO TABLE abc
Run Code Online (Sandbox Code Playgroud)

此查询将所有数据添加到第一列.

请建议将数据导入Mysql的自动语法.

mysql csv import load-data-infile

99
推荐指数
5
解决办法
36万
查看次数

将CSV导入mysql表

将csv文件上传到mysql表的最佳/最快方法是什么?我想将第一行数据用作列名.

发现这个:

如何将CSV文件导入MySQL表

但唯一的答案是使用GUI而不是shell?

mysql csv import load-data-infile database-table

94
推荐指数
3
解决办法
25万
查看次数

mysql加载数据infile无法获取文件的统计信息Errcode:2

我已经看了一遍,没有找到任何解决方案,对此的任何帮助都会很棒.

查询:

LOAD DATA INFILE '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' 
INTO TABLE `tba`.`tbl_name` 
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(
field1, field2, field3
)
Run Code Online (Sandbox Code Playgroud)

错误:

Can't get stat of '/Users/name/Desktop/loadIntoDb/loadIntoDB.csv' (Errcode:2)
Run Code Online (Sandbox Code Playgroud)

注意:

我在OSX 10.6.4上运行连接MySQL 5.x的MySQL Query浏览器

我试过的事情:

  • 拖放正下降
  • Chmod 777
  • 放入具有777权限的文件夹以及具有777权限的文件

mysql load-data-infile

62
推荐指数
2
解决办法
8万
查看次数

LOAD DATA LOCAL,如何跳过第一行?

我正在尝试将CS​​V文件加载到我的MySQL数据库中,但我想跳过第一行.

事实上它包含我的列的名称,没有有趣的数据.

这是我正在使用的查询:

LOAD DATA LOCAL INFILE '/myfile.csv' 
INTO TABLE tableName
FIELDS TERMINATED BY ','
ENCLOSED BY '\"' 
LINES TERMINATED BY '\n' 
(column,column,column);
Run Code Online (Sandbox Code Playgroud)

mysql sql csv import load-data-infile

56
推荐指数
2
解决办法
6万
查看次数

通过命令行将csv导入mysql

我正在尝试将一个非常大的.csv文件(~4gb)导入到mysql中.我正在考虑使用phpmyadmin,但是你的最大上传大小为2mb.有人告诉我,我必须使用命令行.

我打算使用这些说明导入它:http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html#c5680

将.csv表中的第一行设置为mysql表中的列名的命令是什么?这个选项可以通过phpmyadmin获得,所以它们也必须是一个mysql命令行版本,对吗?请帮我.谢谢.

-Raj

mysql csv load-data-infile

55
推荐指数
5
解决办法
16万
查看次数

使用LOAD DATA INFILE导入MySQL表时如何跳过CSV文件中的列?

我有一个包含11列的CSV文件,我有一个包含9列的MySQL表.

CSV文件如下所示:

col1, col2, col3, col4, col5, col6, col7, col8, col9, col10, col11
Run Code Online (Sandbox Code Playgroud)

和MySQL表看起来像:

col1, col2, col3, col4, col5, col6, col7, col8, col9
Run Code Online (Sandbox Code Playgroud)

我需要将CSV文件的1-8列直接映射到MySQL表的前8列.然后,我需要跳过CSV文件中的下两列,然后将CSV文件的第11列映射到MySQL表的第9列.

目前我正在使用以下SQL命令:

LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table
FIELDS TERMINATED BY ','
ENCLOSED BY ''
LINES TERMINATED BY '\n'
Run Code Online (Sandbox Code Playgroud)

但是上面的代码将CSV文件的前9列映射到MySQL表中的9列.

mysql csv load-data-infile

54
推荐指数
2
解决办法
7万
查看次数

带有ON DUPLICATE KEY UPDATE的MySQL LOAD DATA INFILE

为了将大量数据加载到MySQL中,LOAD DATA INFILE是迄今为止最快的选择.不幸的是,虽然这可以以INSERT IGNORE或REPLACE的方式使用,但目前不支持ON DUPLICATE KEY UPDATE.

但是,ON DUPLICATE KEY UPDATE有优势REPLACE.当存在重复时,后者执行删除和插入.这为密钥管理带来了开销.此外,自动增量ID在替换时不会保持不变.

ON DUPLICATE KEY UPDATE使用LOAD DATA INFILE时如何模拟?

mysql load-data-infile on-duplicate-key

42
推荐指数
2
解决办法
4万
查看次数