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

Requêtes MySQL Discussion :

INSERT SELECT erreur Unknown column [MySQL-5.6]


Sujet :

Requêtes MySQL

  1. #21
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Trigger désactivé cette requête a aussi fonctionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    INSERT INTO `domo_releve` (`domo_rel_date`,`domo_rel_wh`,`domo_rel_a`,`domo_rel_p`,`domo_rel_t_ext`,`domo_rel_t_rdc`,`domo_rel_t_etg`) 
    SELECT domo_date,
           domo_rel_wh,
           domo_rel_a,
           domo_rel_p,
           domo_rel_t_ext,
           domo_rel_t_ent,
           domo_rel_t_chb_M 
    FROM tb_domotic
    WHERE (domo_date BETWEEN '2015-01-28 17:15:00' AND '2015-01-28 17:20:00');
    On s'approche...

  2. #22
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Squale76.

    Et la requête d'origine, celle qui pose problème, est-ce qu'elle fonctionne normalement avec les triggers désactivés ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #23
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    La requête d'origine fonctionne bien si le trigger est desactivé, dés que je le réactive, j'ai à nouveau l'erreur.

    Pour situer ce que je faisais, j'ai une base domotic qui est remplie de données relevées et des données calculées. J'ai besoin "d'éclater" ces données dans plusieurs tables. J'ai donc créé plusieurs tables :
    • domo_releve (tables correspondant aux relevés bruts ayant pour clé primaire domo_date)
    • domo_cal_1m (tables correspondant aux relevés calculés ayant pour clé primaire domo_date)
    • domo_cal_15m (tables correspondant aux relevés calculés ayant pour clé primaire domo_date)
    • domo_cal_1j (

    tables correspondant aux relevés calculés ayant pour clé primaire domo_date)

    J'ai donc créé un trigger qui "dispatch" les données brutes dans chaque table en fonction de leur horodatage.

    J'aurai voulu récupéré les données qui ont été déjà enregistrées dans la table tb_domotic (où toutes les données étaient brutes et calculées) par insert de la table tb_domotic vers domo_releve.
    Lors de l'insert le trigger calculerait et dispatcherait mes données dans les différentes tables.

    J'espère être clair...

  4. #24
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Dans la première requete de la fonction getDelta_wh_15m, vous avez
    WHERE `domo_rel_date` < dtDate AND MINUTE(`domo_date`) IN (0, 15, 30, 45);.

    je pense que ça serait plutôt :
    WHERE `domo_rel_date` < dtDate AND MINUTE(`domo_rel_date`) IN (0, 15, 30, 45);

  5. #25
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    Super, c'est ça, je comprends mieux maintenant pourquoi le plantage se faisait lorsque la requête d'insert avait une date avec des minutes égale à 15.

    Un grand MERCI à tous.

    Désolé pour le retard d'information, j'aurai dû vous parler de ce trigger et ces fonctions.

    encore

  6. #26
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Squale76.

    Tu parles de trigger mais dans ton message (post #19), tu nous donnes des fonctions.
    Et tu confirmes que la remarque de aieeeuuuuu est la solution à ton problème.

    Mais nous n'avons pas vu dans tes premiers messages, une quelconque relation entre ton problème et tes fonctions.
    Dans quels cas tu les utilises ?

    Aurais-tu par hasard fait un appel à tes fonctions dans des triggers ?
    A moins de me tromper, une fonction s'utilise dans des requêtes (select, insert, update) et non en cascade dans des procédures ou des triggers.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #27
    Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Juillet 2007
    Messages : 41
    Points : 54
    Points
    54
    Par défaut
    J'ai parlé de trigger dans mon post #17. En fait le trigger utilise les fonctions du post #19 lors de l'insert dans les tables de données calculées.
    Exemple pour le début du trigger :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    INSERT INTO `domo_cal_1m` (
            `domo_date`,
            `domo_cal_1m_wh`,
            `domo_cal_1m_t_ext`,
            `domo_cal_1m_t_rdc`,
            `domo_cal_1m_t_etg`,
            `domo_cal_1m_t_p`
        )
        VALUES (
            NEW.`domo_rel_date`,
            getDelta_wh_1m(NEW.`domo_rel_date`, NEW.`domo_rel_wh`),
            NEW.`domo_rel_t_ext`,
            NEW.`domo_rel_t_rdc`,
            NEW.`domo_rel_t_etg`,
            null
        );
    La fonction getDelta_wh_1m est utlisé pour calculer les watts consommés entre deux relevés diviser par le nombre de minutes entre ces relevés. (pas très clair tout ça...)
    La fonction getDelta_wh_1m est bien utilisé dans une requête INSERT.

  8. #28
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut Squale76.

    Je comprends mieux la relation que vous faites entre les triggers et les functions.

    Sauf que je ne travaille pas ainsi.
    Une function est en général, une façon de corriger quelque chose qui ne me plait pas.
    Par exemple, une date qui se présente sous se format "JJ/MM/AAAA" alors que je dois obtenir "AAAA-MM-JJ".
    Donc c'est très ponctuelle comme approche. Du coup, j'ai très peu de function.

    Quand j'ai des traitements de dispatching à faire à partir de plusieurs triggers, alors j'utilise les procédures stockées.
    Je fais le même appel à la procédure stockée dans chaque triggers que j'utilise.
    Et le cœur de mon traitement se trouve bien dans la procédure stockée.
    Il a pour but de faire que du rangement, et non de faire des conversions (c'est le rôle de mes functions) de données.

    Vu que votre problème est résolu, alors je vous souhaite une bonne continuation.

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] "erreur : Unknown column 'genre18' in 'field list'
    Par neotux56 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/01/2013, 12h47
  2. [MySQL] requete inexacte ? "erreur : Unknown column '$prix' in 'field list'"
    Par hotman1313 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 27/03/2012, 22h37
  3. Erreur "Unknown column" dans un JOIN sous MySQL 5.0
    Par bibiloute dans le forum Requêtes
    Réponses: 5
    Dernier message: 28/04/2006, 09h16
  4. erreur mysql Unknown column...
    Par italiasky dans le forum Requêtes
    Réponses: 9
    Dernier message: 08/02/2006, 10h26
  5. Unknown column sur un INSERT
    Par jexl dans le forum Requêtes
    Réponses: 3
    Dernier message: 19/10/2005, 00h28

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