Shi*_*dla 50 mysql import text-files
我有一个名为350MB的文件,text_file.txt其中包含此制表符分隔的数据:
345868230 1646198120 1531283146 Keyword_1531283146 1.55 252910000
745345566 1646198120 1539847239 another_1531276364 2.75 987831000
...
Run Code Online (Sandbox Code Playgroud)
MySQL数据库名称: Xml_Date
数据库表: PerformanceReport
我已经创建了包含所有目标字段的表.
我想将这个文本文件数据导入MySQL.我用Google搜索并发现了一些命令,LOAD DATA INFILE并且对如何使用它感到很困惑.
如何导入此文本文件数据?
Omn*_*rys 68
它应该像......一样简单
LOAD DATA INFILE '/tmp/mydata.txt' INTO TABLE PerformanceReport;
Run Code Online (Sandbox Code Playgroud)
默认情况下LOAD DATA INFILE使用制表符分隔,每行一行,所以应该很好地使用它.
Eri*_*ski 50
关于使用MySQL的LOAD DATA命令的演练:
创建你的表:
CREATE TABLE foo(myid INT, mymessage VARCHAR(255), mydecimal DECIMAL(8,4));
Run Code Online (Sandbox Code Playgroud)创建制表符分隔文件(请注意列之间有选项卡):
1 Heart disease kills 1.2
2 one out of every two 2.3
3 people in America. 4.5
Run Code Online (Sandbox Code Playgroud)使用load data命令:
LOAD DATA LOCAL INFILE '/tmp/foo.txt'
INTO TABLE foo COLUMNS TERMINATED BY '\t';
Run Code Online (Sandbox Code Playgroud)
如果您收到无法运行此命令的警告,则必须启用--local-infile=1此处描述的参数:如何更正MySQL加载错误
行插入:
Query OK, 3 rows affected (0.00 sec)
Records: 3 Deleted: 0 Skipped: 0 Warnings: 0
Run Code Online (Sandbox Code Playgroud)检查它是否有效:
mysql> select * from foo;
+------+----------------------+-----------+
| myid | mymessage | mydecimal |
+------+----------------------+-----------+
| 1 | Heart disease kills | 1.2000 |
| 2 | one out of every two | 2.3000 |
| 3 | people in America. | 4.5000 |
+------+----------------------+-----------+
3 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)如何指定将文本文件列加载到哪些列:
像这样:
LOAD DATA LOCAL INFILE '/tmp/foo.txt' INTO TABLE foo
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(@col1,@col2,@col3) set myid=@col1,mydecimal=@col3;
Run Code Online (Sandbox Code Playgroud)
文件内容放入变量@ col1,@ col2,@ col3.myid获取第1列,mydecimal获取第3列.如果执行此操作,则会省略第2行:
mysql> select * from foo;
+------+-----------+-----------+
| myid | mymessage | mydecimal |
+------+-----------+-----------+
| 1 | NULL | 1.2000 |
| 2 | NULL | 2.3000 |
| 3 | NULL | 4.5000 |
+------+-----------+-----------+
3 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
pei*_*ixe 13
如果您的表由其他人分隔,则应将其指定为...
LOAD DATA LOCAL
INFILE '/tmp/mydata.txt' INTO TABLE PerformanceReport
COLUMNS TERMINATED BY '\t' ## This should be your delimiter
OPTIONALLY ENCLOSED BY '"'; ## ...and if text is enclosed, specify here
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
234355 次 |
| 最近记录: |