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 :

Créer une partition pour une table


Sujet :

SQL Procédural MySQL

  1. #21
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Incroyable :o !
    Je ne pouvais pas avoir mieux comme explication, je suis vraiment content. Merci pour tout ces petits trucs, tu m'as certainement mis sur la bonne piste. Merci à tout le monde aussi


    Cependant j'ai une dernière question mise en rapport avec ce traitement. J'aimerais bien l'effectuer à l'aide d'une fonction stockée. Comme je suis un habitué de MSSQL Server j'en fais souvent usage. Sont-elles aussi bénéfiques sous MySQL ? Et mon problème principal avec les procédures/fonctions stockées c'est que je suis incapable d'en créer une sous MySQL. Pourtant je suis exactement la doc mysql... J'ouvre la console [MySQL Command Line Client] (Reférence sur la doc : http://dev.mysql.com/doc/mysql/en/create-procedure.html) et j'y entre exactement cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mysql> delimiter //
    mysql> CREATE FUNCTION hello (s CHAR(20)) RETURNS CHAR(50)
        -> RETURN CONCAT('Hello, ',s,'!');
        -> //
    J'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    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 '(s CH
    AR(20)) RETURNS CHAR(50)
    RETURN CONCAT('Hello, ', s,'!')' at line 1
    Bref, chaque fois que j'essais de créer une fonction ou une procédure j'obtiens ce genre d'erreur, même dans les cas les plus simples.
    Cette simple procédure ne passe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    mysql> delimiter //
    mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
        -> BEGIN
        ->   SELECT COUNT(*) INTO param1 FROM t;
        -> END
        -> //
    Voilà ce que j'obtiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    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 'PROCE
    DURE simpleproc (OUT param1 INT)
    BEGIN
    SELECT COUNT(*) INTO param1 FROM dat' at line 1
    Merci encore.

  2. #22
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 23
    Par défaut
    Citation Envoyé par qi130
    tu maitrises d'autres trucs que MySQL ?
    Euh... le PHP et la chaise à roulette principalement.

    Citation Envoyé par Erakis
    Je ne pouvais pas avoir mieux comme explication
    C'est cool, j'avais peur d'en faire trop.

    Citation Envoyé par Erakis
    J'aimerais bien l'effectuer à l'aide d'une fonction stockée
    Chez MySQL les "fonctions" sont en fait des appels à des bibliothèques (donc du C, généralement). Quant aux procédures stockées... elles sont malheureusement encore très jeunes chez MySQL et disponible uniquement à partir des dernières versions alpha (5.0.x). Si ton serveur est sous Linux tu peux essayer la 5.0.2 (trop buggée sous Windows) ou compiler la 5.0.3-dev pour tester, mais il va encore falloir un peu de temps pour que la lignée soit déclarée stable, désolé.

    Au fait, j'ai retesté la requête que j'ai posté plus haut et effectivement indiquer le timestamp explicitement (l'indique sous forme numérique) améliore réellement les performances.

  3. #23
    Rédacteur
    Avatar de Erakis
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2003
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 523
    Par défaut
    Hubert Roksor vous êtes un PRO
    Ce post à été des plus avantageux pour moi et pour tout le monde à vrai dire .

    Milles merci.

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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