2015-12-21 71 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

哎呀,固定它... –