将* .txt文件中的列插入现有MySQL表的末尾

时间:2014-10-29 18:17:36

标签: mysql database insert mysql-workbench

我正在尝试将* .txt文件的内容加载到MySQL数据库table.i.e的末尾。我想将文件的内容追加到MySQL中的现有表中。我在MySQL Workbench(Windows 7)中工作。我从http://dev.mysql.com/downloads/windows/installer/下载了Windows 5.6.21安装程序:

以下是我正在使用的MySQL代码:

创建数据库,表和加载文件:

CREATE SCHEMA fileimport2;
USE fileimport2;
CREATE TABLE testtable(column1 INT, column2 VARCHAR(255), column3 DECIMAL(8,4));
LOAD DATA INFILE 'File.txt'
INTO TABLE foo COLUMNS TERMINATED BY '\t';

此时,数据库有一个包含3行3列的表。注意:我尝试过:

SET GLOBAL local_infile = 'ON';

但我仍然无法获得

LOAD DATA LOCAL INFILE 'File2.txt'

上班。出于这个原因,我改为使用:

LOAD DATA INFILE 'File2.txt'

接下来,我在表的末尾添加第4列:

ALTER TABLE testtable
ADD column4 VARCHAR(255)
AFTER column3;

此时,创建了第4列。

现在,我想尝试将名为'File2.txt'的文件加载到第4列的第1,2,3行:

将值放在#4列中,来自包含一列<* h3>的* .txt文件
LOAD DATA INFILE 'File2.txt'
INTO TABLE testtable
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(@col1,@col2,@col3,@col4) set column4=@col4;

查看表:

SELECT * FROM testtable

问题: 当我这样做时,文件'File2.txt'的内容被添加到第4列的第4,5,6行。第4列的第1,2,3行是NULL。列1,2,3的第4,5,6行为NULL。这不是我想要的。我不想要空条目。我的决赛桌应该是3行X 4列。

图片显示问题: Result showing problem

文件内容:

File.txt(列由制表符分隔):

1 First line of text 7.24
2 Second line goes here 5.7
3 Sample text on line 3 11.6

FILE2.TXT:

before today
one tow
ssf three

问题: 有没有办法将文件(如水平串联)加载到第4列的行1,2,3?

0 个答案:

没有答案