IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Mysql pb de data truncation


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut Mysql pb de data truncation
    Bonjour

    J'ai une table à mettre à jour en fonction des données d'une autre. Pour cela une rqte de mise à jour:

    UPDATE t_parc,t_fit set t_parc.S_IT=-1
    WHERE t_parc.CODE=t_fit.CODE
    AND t_parc.IMMATRICULATION = t_fit.IMMATRICULATION


    à l'éxécution j'ai une erreur du type:

    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'CODE' at row 1

    le chp code des 2 tables est de format identique et dans phpmyadmin pas d'erreur.

    Donc j'ai fait une autre rqte

    UPDATE t_parc set t_parc.S_IT=-1
    WHERE t_parc.CODE IN (SELECT t_fit.CODE FROM t_fit)
    AND t_parc.IMMATRICULATION IN (SELECT t_fit.IMMATRICULATION FROM t_fit)


    et là plus d'erreur par contre le temps d'exécution et passé de 0.03s à 1.5s

    Vous n'auriez pas un explication ?
    Merci d'avance

  2. #2
    Candidat au Club
    Inscrit en
    Juillet 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 3
    Par défaut
    Citation Envoyé par Mengué georges
    Bonjour

    J'ai une table à mettre à jour en fonction des données d'une autre. Pour cela une rqte de mise à jour:

    UPDATE t_parc,t_fit set t_parc.S_IT=-1
    WHERE t_parc.CODE=t_fit.CODE
    AND t_parc.IMMATRICULATION = t_fit.IMMATRICULATION


    à l'éxécution j'ai une erreur du type:

    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'CODE' at row 1

    le chp code des 2 tables est de format identique et dans phpmyadmin pas d'erreur.

    Donc j'ai fait une autre rqte

    UPDATE t_parc set t_parc.S_IT=-1
    WHERE t_parc.CODE IN (SELECT t_fit.CODE FROM t_fit)
    AND t_parc.IMMATRICULATION IN (SELECT t_fit.IMMATRICULATION FROM t_fit)


    et là plus d'erreur par contre le temps d'exécution et passé de 0.03s à 1.5s

    Vous n'auriez pas un explication ?
    Merci d'avance
    Salut,
    alors je pense que tu as déja une perte de temps quand tu passe par le jdbc
    et as tu essayé ta seconde requête sur phpmyadmin il se peut que le fait d'avoir mis des sous requêtes augmente le temp de traitement

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Oui je l'ai essayée et elle fonctionne aussi. J'ai essayé de l'optimiser mais je n'ai rien gagné comme temps.
    Ce pb d'UPDATE je l'ai rencontré chaque fois avec la première formulation, et chaque fois je l'ai contourné en programmant une boucle mais comme la je n'avais pas d'autre solution voila le pourquoi de ma question.

    Si quelqu'un a une autre idée je suis preneur

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Re pb sur la rqte suivante:

    UPDATE `t_dt` SET QTE=(SELECT COUNT(IMM) FROM t_parc WHERE `t_parc`.`CODE` = `t_dt`.`CODE`)

    et l'erreur

    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'CODE' at row 1

    Donc modification pour pallier à l'erreur

    UPDATE t_parc SET CODE = LEFT(CODE,8)
    puis
    UPDATE t_dt SET CODE = LEFT(CODE,8)
    et re première rqte -> même pb

    Remodification

    UPDATE `t_dt` SET QTE=(SELECT COUNT(IMM) FROM t_parc WHERE LEFT(`t_parc`.`CODE`,8) = LEFT(`t_dt`.`CODE`,8))

    et là plus de pb et sur phpmyadmin no problème quelque soit le cas !!!

Discussions similaires

  1. data truncation avec Mysql
    Par ferhat.adel dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 05/11/2012, 09h45
  2. [MySQL]error 1265 (01000) data truncated for column
    Par fayabobo dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/05/2011, 15h43
  3. MySQL 5 Probleme Data Truncated
    Par whichgirl0909 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 18/06/2007, 21h42
  4. reinstalation mysql et rep. data
    Par Celeborn dans le forum Installation
    Réponses: 1
    Dernier message: 25/07/2005, 22h23
  5. Que signifie "Error : Data truncation" ??
    Par BouB dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/05/2005, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo