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 :

IF ( Structure conditionnelle ) MYSQL


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 16
    Points
    16
    Par défaut IF ( Structure conditionnelle ) MYSQL
    Bonjour,

    Après qq. recherches sur http://dev.mysql.com/, j'ai vu qu'il était possible de réaliser des structures conditionnelles de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IF search_condition THEN statement(s)
    [ELSEIF search_condition THEN statement(s)]
    ...
    [ELSE statement(s)]
    END IF
    J'aimerai appliquer en faisant cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF ( REQUETE ) THEN REQUETE2 END IF
    exemple concret :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF ( SELECT COUNT(*) FROM MATABLE < 8 ) THEN INSERT INTO MATABLE VALUES ...END IF
    J'ai fait plusieurs essais, mais Mysql me dit qu'il y a une erreur.

    Je voulais savoir si l'on pouvait effictivement utiliser ces structures conditionnelles pour réaliser ce que je souhaite faire

    Merci d'avance

  2. #2
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    fait plutot ton select count(*) dans une variable et applique ton if sur la variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DECLARE v_i INT;
     
    SELECT COUNT(*) 
    INTO v_i
    FROM MATABLE
    WHERE tacolonne< 8;
     
    IF v_i=XX THEN
         INSERT INTO MATABLE VALUES ...
    END IF

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Tiens, c'est curieux mais je n'arrive même pas à déclarer une variable locale.

    En effet, il y a une erreur dès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DECLARE v_i int(11);
     
    ERROR 1064 (42000): 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 'DECLARE v_i int(11)' at line 1
    C'est curieux car j'ai Mysql 5 d'installé

  4. #4
    Membre éclairé Avatar de pop_up
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2006
    Messages : 877
    Points : 786
    Points
    786
    Par défaut
    tu as declaré ta variable dans une fonction (ou une procedure) ?

  5. #5
    Membre averti Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Points : 332
    Points
    332
    Par défaut
    slt...

    d´apres ton message d´erreur:

    syntax TO USE near 'DECLARE v_i int(11)' at line 1
    Tu declare ta var ou? car ca a l´air de ne pas etre dans une procedure, ni dans une function...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Effectivement, les choses se passent mieux en mettant le tout dans une procédure. J'avais oublié

  7. #7
    Membre à l'essai
    graphiste inforgraphiste monteur compositeur
    Inscrit en
    Septembre 2012
    Messages
    38
    Détails du profil
    Informations professionnelles :
    Activité : graphiste inforgraphiste monteur compositeur

    Informations forums :
    Inscription : Septembre 2012
    Messages : 38
    Points : 21
    Points
    21
    Par défaut
    bonjour c'est exactement ce que je cherche , en revanche pourriez vous expliquer avec un exemple ce que cous appeler la procédure

    je comprend pas entièrement le fonctionnement bien que j'ai regarder cette page

    http://publib.boulder.ibm.com/infoce...d/c0011920.htm

    je souhaite aussi effectuer un count sur une colonne et si colonne vide alors effectuer un insert into

    merci d'avance !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Structures conditionnelles simples
    Par spad22 dans le forum VBA Word
    Réponses: 7
    Dernier message: 04/01/2008, 16h09
  2. [VBA-E]Structure conditionnelle sur plusieurs variables
    Par rodrigue62 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/07/2007, 14h30
  3. structure conditionnelle dans la clause where
    Par liberty74 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 23h18
  4. [XSLT]la structure conditionnelle.
    Par Extra-Nitro dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 22/08/2006, 13h46
  5. [Language][Compilateur]Objets et structures conditionnelles
    Par goran kajfes dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2005, 22h55

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