1 votes

Chargement de l'heure actuelle dans la base de données mysql

J'ai une requête qui permet d'entrer des données dans une base de données mysql. J'utilise Ubuntu Server 12.04 LTS. Voici le code que j'utilise pour entrer les données dans la table (il est intégré dans un script).

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

J'ai créé la table avec 3 colonnes dont une pour l'heure avec un type de données appelé timestamp. Comment puis-je modifier mon code pour qu'il puisse également insérer l'heure locale. J'utilise un système LAMP. Pour plus de clarté, si ma table est remplie comme suit

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

et mon fichier texte contient les données

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

Si je lance le script maintenant, je m'attends à ce qu'il apparaisse dans la base de données sous la forme suivante

> 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

2voto

Rinzwind Points 270388

Vous pouvez le faire de la même manière que pour LOAD INFILE :

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

modifiera TABLEA et définira time pour tous les enregistrements jusqu'à now() où time EST NULL ou lorsque time est vide (puisque vous ne fournissez pas l'horodatage avec le fichier, cela ne modifiera que les nouveaux enregistrements).

Ajoutez un "où" si vous devez modifier moins d'enregistrements. Ou quelque chose comme "où time IS NULL" si le champ est NULL ou la clé réelle des enregistrements du fichier texte.

2 autres méthodes :

  1. Bien entendu, vous pouvez également fournir l'horodatage en l'ajoutant au fichier texte que vous téléchargez.

  2. Vous pouvez également modifier le tableau lui-même et ajouter HORODATAGE_COURANT par défaut à UNE ( !) colonne du tableau.

À propos : ne fournissez pas le mot de passe avec cette méthode. Il sera affiché dans votre liste de processus et donc visible par tous. Vous trouverez plus d'informations à ce sujet dans la section Manuel officiel de MySQL 6.1.2.1. Directives pour les utilisateurs finaux concernant la sécurité des mots de passe

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X