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

SQL Procédural MySQL Discussion :

Fonction declencheur non fonctionnelle


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Par défaut Fonction declencheur non fonctionnelle
    Salut à tous,
    j'ai le code suivant, qui est en fait une fonction qui va être utilisé par la suite dans le corps d'un declencheur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE FUNCTION addnbaccess () RETURNS OPAQUE AS
    DECLARE
        var INTEGER;
     BEGIN
     Select into var max(nbaccess) from dbespion.produit;
       NEW.nbaccess:= var+1;
       RETURN NEW;
    END;
    Quand j'exécute ce code dans l'éditeur du MySql Query Browser, je reçoit un message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 1

    Que dois-je faire? ....
    Merci pour votre aide ...

  2. #2
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Par défaut
    J'ai ajouter l'instruction 'delimiter' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    delimiter |
    CREATE FUNCTION addnbaccess () RETURNS INTEGER AS
    DECLARE
        var INTEGER;
     BEGIN
     Select into var max(nbaccess) from dbespion.produit;
       NEW.nbaccess:= var+1;
       RETURN NEW;
    END;
    |
    et j'ai eu une nouvelle erreur :
    Remarque: J'utilise MySql Query Browser, version 1.2.4 beta

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    D'après l'exemple fourni ici, le point-virgule après le END est de trop.

    La syntaxe du SELECT ne me parait pas correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select max... INTO var...
    ?

    NEW (et OLD) ne sont connus que dans un trigger où ils font référence à respectivement la nouvelle valeur d'une colonne qu'il faut mentionner et à l'ancienne. Et donc, mais new quoi ?

    Enfin, l'affectation ne se fait pas par :=

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    705
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 705
    Par défaut
    Merci pour votre réponse:
    Alors,
    Citation Envoyé par qi130 Voir le message

    La syntaxe du SELECT ne me parait pas correcte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select max... INTO var...
    ?

    Je vais mettre le résultat du select dans une variable var ... c'est simple !

    NEW (et OLD) ne sont connus que dans un trigger où ils font référence à respectivement la nouvelle valeur d'une colonne qu'il faut mentionner et à l'ancienne. Et donc, mais new quoi ?

    Enfin, l'affectation ne se fait pas par :=
    Concernant vos 2 derniers remarques, je me suis basé sur un exemple de l'internet pour écrirer comme ça, c'est àd ire à propos de NEW et l'affectation.

Discussions similaires

  1. [Drupal] Développement module, fonction non fonctionnelle
    Par Holzhammer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 31/12/2014, 15h57
  2. Fonction rename() non fonctionnelle
    Par Geoffrey74 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2014, 16h27
  3. Fonction réseauconnecte et lanceappli non fonctionnel
    Par djdidi2010 dans le forum WinDev
    Réponses: 3
    Dernier message: 03/04/2012, 14h57
  4. [AC-2007] Fonction de suppression de requête non fonctionnelle
    Par facedeharicot dans le forum VBA Access
    Réponses: 9
    Dernier message: 26/07/2011, 11h49
  5. Fonction getimagesize non fonctionnel (Taille fichier SVG)
    Par Guillaume_Caldera dans le forum Langage
    Réponses: 3
    Dernier message: 17/03/2010, 12h57

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