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 :

Conversion de Trigger PGSQL vers Mysql


Sujet :

SQL Procédural MySQL

  1. #1
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 1
    Points : 2
    Points
    2
    Par défaut Conversion de Trigger PGSQL vers Mysql
    Bonjour a tous,

    alors mon problème est le suivant: j'ai un fichier txt comportant ma base de donnée. Cependant celle-ci est en PGSQL et je dois la modifier pour l'importer sous Mysql. Tout va bien pour la creation des table ou vues mais la je bloque pour tout ce qui est trigger, procedure et fontion.
    Voici un exemple qui me pose probleme si quelqu'un pouvait me le "traduire" pour mysql je lui en serai tres reconnaissant.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    DROP FUNCTION bonus_race_proc();
    CREATE FUNCTION bonus_race_proc() RETURNS opaque 
    AS
      DECLARE
        old_b_intelligence INTEGER := 0;
        old_b_vivacite INTEGER := 0;
        old_b_force INTEGER := 0;
        old_b_endurance INTEGER := 0;
        old_b_dexterite INTEGER := 0;
        new_b_intelligence INTEGER;
        new_b_vivacite INTEGER;
        new_b_force INTEGER;
        new_b_endurance INTEGER;
        new_b_dexterite INTEGER;
      BEGIN
        -- Verifie que la race a ete modifiee
        IF TG_OP = \'UPDATE\' THEN 
          IF NEW.race = OLD.race THEN
            RAISE NOTICE \'      bonus_race_proc pas de changement\';
            RETURN NEW;
          END IF;
        END IF;
        RAISE NOTICE \'    debut bonus_race_proc.\';
        -- Supprime les bonus de l ancienne race et ajoute ceux de la nouvelle
        IF TG_OP = \'UPDATE\' THEN
          SELECT bonusIntelligence,bonusVivacite,bonusForce,bonusEndurance,bonusDexterite 
          INTO old_b_intelligence,old_b_vivacite,old_b_force,old_b_endurance,old_b_dexterite
          FROM Race WHERE cRace = OLD.race;
        END IF;
        SELECT bonusIntelligence,bonusVivacite,bonusForce,bonusEndurance,bonusDexterite 
        INTO new_b_intelligence,new_b_vivacite,new_b_force,new_b_endurance,new_b_dexterite
        FROM Race WHERE cRace = NEW.race;
        UPDATE Perso SET intelligence = intelligence - old_b_intelligence + new_b_intelligence
        WHERE nom = NEW.nom;
        UPDATE Perso SET force = force - old_b_force + new_b_force WHERE nom = NEW.nom;
        UPDATE Perso SET endurance = endurance - old_b_endurance + new_b_endurance WHERE nom = NEW.nom;
        UPDATE Perso SET vivacite = vivacite - old_b_vivacite + new_b_vivacite WHERE nom = NEW.nom;
        UPDATE Perso SET dexterite = dexterite - old_b_dexterite + new_b_dexterite WHERE nom = NEW.nom;
        RAISE NOTICE \'    fin bonus_race_proc.\';
        RETURN NEW;
      END;
     
    LANGUAGE 'plpgsql';
     
    CREATE TRIGGER bonus_race_trig
      AFTER INSERT OR UPDATE ON Perso
      FOR EACH ROW
        EXECUTE PROCEDURE bonus_race_proc();
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    Les différences sont vraiment très nombreuses... je te suggère de faire un tour sur la doc http://dev.mysql.com/doc/refman/5.0/...rocedures.html, d'avancer sur le gros du boulot, et de poser des questions plus précises sur les points qui te bloquent.

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

Discussions similaires

  1. Conversion requête SQL:Oracle vers MySQL
    Par lasmarco dans le forum Langage SQL
    Réponses: 1
    Dernier message: 30/12/2011, 11h46
  2. [OpenOffice][Base de données] Conversion, exportation d'open-office base et calc vers Mysql.
    Par Invité dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 14/05/2010, 08h16
  3. Conversion de date vers mysql
    Par kOrt3x dans le forum Langage
    Réponses: 3
    Dernier message: 20/11/2009, 08h08
  4. conversion date access vers mysql
    Par tiph02 dans le forum VBA Access
    Réponses: 4
    Dernier message: 16/04/2007, 11h51
  5. Conversion de caractère mssql vers mysql
    Par nicoaix dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 12/10/2006, 10h21

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