MySQL, как мне вставить теперь () дату при выполнении INFILE загрузки данных? - PullRequest
0 голосов
/ 07 марта 2012

Я импортирую данные из файла 'infile.txt' и использую таблицу: Люди (ID автоматически_инкремментирован) , чтобы вставить его в

ID DATE NAME

inFile.txt

Ben
Jim
Jack

Я использую этот метод

LOAD DATA INFILE '~/infile.txt'      
INTO TABLE People
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(DATE, NAME);

Желаемый выход

   ID  DATE                 NAME
    1  2012-03-06 15:13:40  Ben
    2  2012-03-06 15:13:41  Jim
    3  2012-03-06 15:13:42  Jack

Ответы [ 2 ]

4 голосов
/ 07 марта 2012

Если вы хотите игнорировать даты в файле и использовать вместо этого NOW (), вы можете просто загрузить дату из файла в пользовательскую переменную и проигнорировать ее, а затем явно установить дату в NOW (), например, это:

LOAD DATA INFILE '~/infile.txt'      
INTO TABLE People
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(@DATE, NAME)
SET DATE = NOW();
3 голосов
/ 07 марта 2012

Чтобы установить ваше поле DATE как метку времени:

ALTER TABLE `People` CHANGE `DATE` `DATE` TIMESTAMP DEFAULT CURRENT_TIMESTAMP;

Поле DATE будет автоматически содержать время, когда была вставлена ​​запись, поэтому вы просто игнорируете это поле в своей загрузке. Также DATE не является хорошим выбором для имени поля, так как это зарезервированное слово, которое должно быть заключено в обратные кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...