Partage
  • Partager sur Facebook
  • Partager sur Twitter

Simulation requête Ok mais pas exécution..

phpmyadmin requêteur simulation et exécution syntaxe différente

    18 janvier 2023 à 14:51:54

    Bonjour depuis phpmyadmin sur Raspberry j'essaye de positionner quelques valeurs (2743) à null dans une colonne ou null est autorise!

    Je simule ceci :

    UPDATE  Telemesures_ruches SET tex= 'NULL'

    where tex = 11.6 and id_ruche=4  and horodatage > '2023-01-11 14:00' and horodatage < '2023-01-18 11:48'

    Le requêteur me dit 2743 lignes,

    Si je lance l'execution :

    MySQL a répondu: Documentation

    #1366 - Incorrect decimal value: 'NULL' for column `ruches`.`Telemesures_ruches`.`tex` at row 632032

    Si j'enlève les 'autour de null' :

    UPDATE  Telemesures_ruches 

    SET tex= NULL

    where tex = 11.6

    and id_ruche=4 and horodatage > '2023-01-11 14:00' and horodatage < '2023-01-18 11:48'

    Le requêteur me dit 0 lignes , mais si j'exécute la requête il me modifie les 2743 lignes...

    Va comprendre! Si quelqu'un sait d'où cela provient...

    Merci

    -
    Edité par GillesMangin-Voirin 26 janvier 2023 à 9:25:06

    • Partager sur Facebook
    • Partager sur Twitter
      19 janvier 2023 à 1:21:41

      'NULL' c'est différent de NULL. Le premier est de type varchar (chaîne de caractère), le second n'est pas spécifiquement typé. NULL peut s'utiliser avec un type entier (int), comme un type chaîne de caractères (varchar) ou autre.

      Je ne connais pas le mode simulation de PMA.

      En lisant ta première requête, je constate que tex est de type decimal(). En faisant un SET tex = 'NULL', tu assignes un type varchar() à une colonne de type decimal() : forcément une erreur (la 1366) est levée.

      Quand tu as décidé, à raison, de retirer les guillemets simples, ta requête est devenue correcte. Autant je ne comprends pas le résultat du simulateur de 0 ligne. Autant si la requête a modifié 2743 lignes c'est que toute les conditions WHERE étaient vraies. Mais alors pourquoi le simulateur indique 0 ligne ?

      • Partager sur Facebook
      • Partager sur Twitter
        19 janvier 2023 à 9:38:06

        Oui merci je savais pour cette histoire de chaine de caractères c'est un essai (j'ai oublié de le préciser) car au départ avant de lancer une modification massive de la table je lance la simulation pour avoir une idée de la chose et vérifier la syntaxe.

        En fait ma question c'est pourquoi le simulateur du requêteur me dit 'null' c'est 2743 lignes et si je lance c'est 0 (à cause de la chaine de caractère au lieu d'un décimal ou null).

        Et à l'inverse si je simule NULL il dit 0 lignes mais si je lance cette requête il modifie 2743 lignes c'est assez perturbant et du coup on ne peut pas vraiment simuler la requête avant de la lancer...

        Merci

        • Partager sur Facebook
        • Partager sur Twitter

        Simulation requête Ok mais pas exécution..

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown