Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Outils
Outils Forum d'entraide sur les outils pour MySQL. Avant de poster -> Outils MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2006, 15h35   #1
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Par défaut Question sur l'utilisation du type TIMESTAMP

Bonjour, voici mon soucis.

J'ai une table avec une vingtaine de champs, le 1er est mon PRIMARY KEY, le 2ème est DATE, le 3ème est un TIMESTAMP (par défaut), et après tous les autres sont principalement du FLOAT UNSIGNED.

Je veux remplir avec des fichiers .csv qui sont construit corrects, chaque colonne correspond bien à chaque champ et les types de données aussi, les imports se passe sans erreur (avec phpMyAdmin), mais mon champ de type TIMESTAMP reste désespérement à 0000-00-00 00:00:00 !!!

La colonne correspondante dans le .csv est vide, mais comme pour le champ qui sert de PRIMARY KEY, qui lui se remplis et s'incrémente pi-poil !!!

Où est l'erreur ??? Merci d'avance...
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2006, 16h45   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Salut,

Peux-tu nous donner ta version de MySQL, les ordres de création de la table et un extrait du CSV ?
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 08h05   #3
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Citation:
Envoyé par Maximilian
Salut,

Peux-tu nous donner ta version de MySQL, les ordres de création de la table et un extrait du CSV ?
Alors j'utilise MySQL 5.0.22 et phpMyAdmin 2.8.1
Pour les ordres de création je vais résumer :

Code :
CREATE TABLE pressions (ID_P MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT, dates_P DATE, ts_P TIMESTAMP, p_s_vap_EV1 FLOAT(5,1) UNSIGNED, ..... , PRIMARY KEY(ID_P));
les "....." représente les déclarations d'une vingtaine de champs de type FLOAT(m,d) UNSIGNED

et voici un extrait du fichier .csv (les 3 premières lignes, il y en a 24 par fichiers)

;2006-08-18;;1168.4;636.5;326.4;90.9;994.6;1.25;1068.1;1068.1;636.5;326.4;104.9;105;-68;13.7;-7;-50;-50;98.0
;2006-08-18;;1164.0;640.4;340.8;93.3;995.1;1.24;1068.0;1068.0;640.4;340.8;104.9;105;-71;13.3;-7;-50;-50;100.4
;2006-08-18;;1151.9;633.0;332.0;86.5;997.2;1.20;1056.1;1056.1;633.0;332.0;104.9;105;-74;13.4;-7;-50;-50;86.7

Je sais qu'il y a des valeurs négatives alors que je n'ai que des UNSIGNED, mais ce n'est pas grave, car ce sont des abérations de capteurs quand certains appareils sont arrêtés, cela les stockent à "0" et c'est très bien !
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 08h12   #4
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
et que voudrais-tu avoir pour ton timestamp? le timestamp d'insertion de l'enregistrement?
je pense que dans ta définition de colonne tu peux donner une valeur par défaut si le champs est null.
Avec postgresql tu peux lui donner l'expression "now()" et il t'enregistre automatiquement le timastamp du moment de l'insertion.
Je suppose que MySQL peut faire de même....
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 08h25   #5
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Citation:
Envoyé par gerald2545
et que voudrais-tu avoir pour ton timestamp? le timestamp d'insertion de l'enregistrement?
je pense que dans ta définition de colonne tu peux donner une valeur par défaut si le champs est null.
Avec postgresql tu peux lui donner l'expression "now()" et il t'enregistre automatiquement le timastamp du moment de l'insertion.
Je suppose que MySQL peut faire de même....
Avec MySQL, quand tu ne précises rien de plus que TIMESTAMP, l'attribut par défaut est ON UPDATE CURRENT_TIMESTAMP et le paramètre défaut est CURRENT_TIMESTAMP donc, en théorie, le timestamp devrait être différent à chaque ligne et au lieu de ça il reste à zéro...
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 10h34   #6
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
Essaie de modifier une ligne, en mettant \N pour une valeur de la colonne timestamp, pour voir si ça change quelque chose

Code :
;2006-08-18;\N;1168.4;636.5;326.4;90.9;994.6;1.25;1068.1;1068.1;636.5;326.4;104.9;105;-68;13.7;-7;-50;-50;98.0
Donne-nous également ta commande LOAD DATA que tu utilises pour charger le csv.
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 10h36   #7
Membre chevronné
 
Avatar de gerald2545
 
Inscription : février 2003
Messages : 643
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 643
Points : 660
Points : 660
Citation:
ON UPDATE CURRENT_TIMESTAMP
et pourquoi pas
Citation:
ON INSERT CURRENT_TIMESTAMP
?
Si je comprends bien, il ne met le timestamp courant que pour une mise à jour...
tu as essayé de faire une mise à jour sans toucher à ce timestamp pour voir s'il change?
gerald2545 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 10h49   #8
Membre chevronné
 
Avatar de shkyo
 
Homme
Administrateur systèmes et réseaux - Développeur VB
Inscription : juin 2003
Messages : 607
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 38

Informations professionnelles :
Activité : Administrateur systèmes et réseaux - Développeur VB

Informations forums :
Inscription : juin 2003
Messages : 607
Points : 749
Points : 749
Citation:
Envoyé par Biglo
Essaie de modifier une ligne, en mettant \N pour une valeur de la colonne timestamp, pour voir si ça change quelque chose

Code :
;2006-08-18;\N;1168.4;636.5;326.4;90.9;994.6;1.25;1068.1;1068.1;636.5;326.4;104.9;105;-68;13.7;-7;-50;-50;98.0
Donne-nous également ta commande LOAD DATA que tu utilises pour charger le csv.
YES !!! en mettant \N cela fonctionne parfaitement ! Bon évidement j'ai 24 valeurs identiques vu qu'il lui faut moins d'1/100 de secondes pour importer 24 petites lignes, mais ce n'est pas grave car j'ai plusieurs fichiers différents par jour, et j'aurais donc un TIMESTAMP par fichier.

Merci à tous !
__________________
L'homme sage apprend de ses erreurs, l'homme plus sage apprend des erreurs des autres. - Confucius -

Si vous avez quelques minutes, passez donc voir mon site http://www.photospicsandco.com/ Envie de tee-shirts (et goodies!) originaux et sympa ? Visitez mon site... http://www.zazzle.com/shkyo30
shkyo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 14h20   #9
Rédacteur
 
Avatar de Biglo
 
Inscription : juillet 2002
Messages : 537
Détails du profil
Informations personnelles :
Localisation : France, Moselle (Lorraine)

Informations forums :
Inscription : juillet 2002
Messages : 537
Points : 561
Points : 561
De rien, mais si tu as un gros fichier à modifier, il n'est pas nécessaire de mettre des \N partout. Il est possible d'ignorer la colonne avec la commande LOAD DATA.

Enfin bon, tant que ça marche et que ça te convient
Biglo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h33.


 
 
 
 
Partenaires

Hébergement Web