Carregando hora atual no banco de dados mysql

1

Eu tenho uma consulta que pode inserir dados no banco de dados mysql. No entanto, eu gostaria de ter o tempo de uma entrada inserida também e que entrou em tempo deve corresponder ao tempo do servidor.Estou usando o Ubuntu Server 12.04 LTS abaixo é o código que estou usando para inserir dados na tabela (é incorporado em um script)

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

Eu criei a tabela para ter 3 colunas com uma para o tempo com o tipo de dados marcado como timestamp. Como posso editar meu código para que ele também possa inserir a hora local. Eu estou usando uma pilha LAMP. Para esclarecer ainda mais, se minha tabela for preenchida como

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

e meu arquivo de texto contém os dados

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

e eu executo o script agora, eu esperaria que ele aparecesse no banco de dados como

> 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
    
por sosytee 18.09.2013 / 14:57

1 resposta

2

Você pode fazer da mesma maneira que você faz com o LOAD INFILE:

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

mudará TABLEA e configurará time para todos os registros para now () onde time IS NULL ou onde time está vazio (desde que você não insira o registro de data e hora com o arquivo, isso apenas alterará os novos registros .

Adicione um "where" se você precisar alterar menos registros. Ou algo como "onde time IS NULL" se o campo for NULL ou a chave real que os registros no arquivo de texto possuem.

2 outros métodos:

  1. É claro que você também pode fornecer o registro de data e hora adicionando-o ao arquivo de texto que você enviou.

  2. Você também pode editar a tabela em si e adicionar CURRENT_TIMESTAMP como padrão para uma coluna (!) na tabela.

A propósito: por favor, não forneça a senha com este método. Ele será mostrado em sua lista de processos, assim, visível para todos. Mais sobre isso pode ser encontrado no manual oficial do MySQL 6.1.2.1. Diretrizes de usuário final para segurança de senha

    
por Rinzwind 18.09.2013 / 15:05