Загрузка текущего времени в базу данных MySQL

У меня есть запрос, который может ввести данные в базу данных MySQL. Тем не менее, я хотел бы, чтобы время ввода также было введено, и это время должно соответствовать времени сервера. Я использую Ubuntu Server 12.04. Ниже приведен код LTS, который используется для ввода данных в таблицу (он встроен скрипт)

mysql -uroot -pmysql --local-infile database -e"LOAD DATA LOCAL INFILE A.txt INTO TABLE TABLEA columns terminated by '|'"

Я создал таблицу, в которой было 3 столбца с одним для времени с типом данных, помеченным как метка времени. Как я могу отредактировать свой код, чтобы он также мог вставить местное время. Я использую ЛАМПУ стека. Чтобы уточнить далее, если моя таблица заполнена как

> ip                                    mac                       time
> 10.0.0.97                        00 14 2A 2F 72 FE          2012-09-09 23:11:05

и мой текстовый файл содержит данные

10.0.0.97|00 14 2A 2F 72 FF
 10.0.0.98|00 21 33 RT W3 TT

и я сейчас запускаю скрипт, я ожидаю, что он появится в базе данных как

> ip                                      mac                        
> time
> 10.0.0.97                           00 14 2A 2F 72 FE           2012-09-09 23:11:05
> 10.0.0.97                           00 14 2A 2F 72 FF           2013-18-09 16:11:11
> 10.0.0.98                           00 21 33 RT W3 TT           2013-18-09 16:11:11
1
задан 18 September 2013 в 17:18

1 ответ

Можно сделать это тот же путь, как Вы делаете ЗАГРУЗКУ INFILE:

mysql -uroot -pmysql 
-e "update database.TABLEA set `time`=now() where `time` IS NULL or `time` = '';"

изменит TABLEA и установит time для всех записей на теперь (), где time ЯВЛЯЕТСЯ ПУСТЫМ или где time пусто (так как Вы не предоставляете метку времени файл, это только изменит новые записи.

Добавьте "где", если необходимо изменить меньше записей. Или что-то как, "где time ЯВЛЯЕТСЯ ПУСТЫМ", если поле является ПУСТЫМ или фактический ключ, записи в текстовом файле имеют.

2 других метода:

  1. Конечно, можно также обеспечить метку времени путем добавления его в текстовый файл, который Вы загружаете.

  2. Можно также отредактировать саму таблицу и добавить CURRENT_TIMESTAMP как значение по умолчанию к ОДНОМУ (!) столбцу в таблице.

Между прочим: не предоставляйте паролю этот метод. Это покажут в Вашем списке процессов, таким образом видимом для всех. Больше об этом может быть найден в официальном руководстве 6.1.2.1 MySQL. Инструкции конечного пользователя для безопасности Пароля

2
ответ дан 18 September 2013 в 17:18

Другие вопросы по тегам:

Похожие вопросы: