2015-12-21 70 views
0

我在文件中每行一列,并且我想插入到MySQL表中。从文件中插入一列,然后填充其他列

我也想忽略其中的值已存在的行,并且表中有更多列 - 我想要插入一些值到它们中。

我该怎么做?

我有以下SQL:

LOAD DATA INFILE '/home/sample.txt' 
IGNORE INTO TABLE 'table' 
CHARACTER SET utf8; 

它会忽略现有的生产线,但我也想为第二的列值和NULL作为第三的NOW()添加。

我该怎么做?

+0

那些列已经存在吗?使用默认值(或默认的NULL)添加它们是最简单的。请从'show create table your_table'发布输出 –

+0

执行此类操作的最简单方法是将文件加载到临时登台表中,然后使用该表修改现有表。 –

+0

它们确实存在,但我必须在其中插入预定义的值。 – user99999

回答

1

使用temporary table

CREATE TEMPORARY TABLE `table_tmp` (`myfield`); 
LOAD DATA INFILE '/home/sample.txt' INTO TABLE `table_tmp` CHARACTER SET utf8; 
INSERT IGNORE INTO `table` SELECT `myfield`, NOW(), NULL FROM `table_tmp`; 
DROP TEMPORARY TABLE `table_tmp`; 

临时表在内存中,所以这是非常快的。

+0

哎呀,固定它... –