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 :

Transformer une procédure


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de M1000
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 201
    Par défaut Transformer une procédure
    Bonjour,

    J'ai cette préocédure sous MS SQL Server:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE PROCEDURE MA_TABLE @MemberName varchar(100), @RoleName varchar(50)
    AS
    IF NOT EXISTS ( SELECT * FROM MA_TABLE WHERE MemberName = @MemberName AND RoleName = @RoleName)
    BEGIN
    INSERT INTO MA_TABLE ( MemberName, RoleName )
    VALUES ( @MemberName, @RoleName )
    END
    
    Comment je peux faire pour la retranscrire sous MySQL 4.1.18 ?

    Merci

  2. #2
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Bonjour,

    Les procédures ne sont disponibles qu'à partir de MySQL 5.0.

    Le NOT EXISTS n'existe pas dans le langage de procédure de MySQL, il faut utiliser un curseur pour effectuer la requête.

    Cf http://dev.mysql.com/doc/refman/5.0/...rocedures.html

  3. #3
    Membre confirmé Avatar de M1000
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Novembre 2003
    Messages
    201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2003
    Messages : 201
    Par défaut
    Oui okay pour la version 5 je m'en doutais mais n'y a t'il pas moyen de retranscrire ces procédures même via un codage ? en imbriquant des requêtes?

  4. #4
    Membre Expert Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Par défaut
    Tu peux mettre une contrainte d'unicité sur (MemberName, RoleName)

    Ensuite un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO MA_TABLE ( MemberName, RoleName )
    VALUES ( '...', '...' )
    et la requête avortera si la ligne existe déjà.

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

Discussions similaires

  1. [WM18] Transformer une classe java dans une procédure global de type java
    Par law56100 dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 10/09/2014, 12h01
  2. passage d'un nom de table dans une procédure stockée
    Par thierry V dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 26/07/2010, 16h48
  3. Transformation de date dans une procédure stockée
    Par bd0606 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 27/10/2003, 11h31
  4. Problème avec une procédure stockée
    Par in dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/05/2003, 15h33
  5. Fin de programme dans une procédure
    Par Sinclair dans le forum Langage
    Réponses: 13
    Dernier message: 29/11/2002, 22h30

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