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

PostgreSQL Discussion :

Trigger sous phpPgAdmin


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut Trigger sous phpPgAdmin
    Bonjour,

    Mon problème est le suivant:

    J'ai fait un trigger qui marche très bien sous PGAdminIII mais pas sous phpPgAdmin.
    Y a-t'il quelque chose en plus à faire sous phpPgAdmin?

    Merci d'avance.
    Pierre

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Qu'entends-tu par 'il marche très bien' ?

  3. #3
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 863
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 863
    Par défaut
    Bonjour,


    un trigger est lié à ta base et non à l'outil qui te permet de gérer cette base. Donc il n'y a aucune raison qu'il fonctionne sous un outils et pas sous un autre...

  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Bonjour,

    En fait je pense (mais n'en suis pas sur) que le problème vient des droits (et du fait que je n'avais pas crée le langage plpgsql).
    Je suis logger en tant qu'utilisateur 'devpacivur'
    Et j'ai les privileges suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Tipo de dato	Usuario/Grupo	CREATE 	USAGE 	Cedente
    user 	postgres 	Si 	Si 	postgres
    public 		Si 	Si 	postgres
    De plus quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE LANGUAGE plpgsql;
    J'obtiens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Error de SQL:
     
    ERREUR:  erreur de syntaxe sur ou près de « CREATE » at character 32
     
    En la declaración:
    SELECT COUNT(*) AS total FROM (CREATE LANGUAGE plpgsql) AS sub

    Pierre

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Tu essaie de faire quoi ici
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT COUNT(*) AS total FROM (CREATE LANGUAGE plpgsql) AS sub

    Cette requête ne sert à rien, puisque tu essaie de compter une création d"installation de plpgsql.

    Si tu est sur la même base de données, tu ne devrais avoir aucun souci.

    Dit nous ce que tu fais dans pgAdminIII qui tu n'arrive pas à reproduire !

  6. #6
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Bonjour,

    Le select count (*)... c'est ce que me sort PhpPgAdmin quand j'execute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE LANGUAGE plpgsql;
    Mon trigger (qui me met à jour une ligne après un INSERT) qui marche sous PGAdmin est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE OR REPLACE FUNCTION ajout_privileges()
      RETURNS trigger AS
    $BODY$
    BEGIN
      UPDATE test_trigger SET operationid = 1 WHERE operationid = 3;
      RETURN NEW;
    END;
    $BODY$
      LANGUAGE 'plpgsql';
    CREATE TRIGGER tg_ajout_privileges
      AFTER INSERT
      ON test_trigger
      FOR EACH ROW
      EXECUTE PROCEDURE ajout_privileges();

    Pierre

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bon alors, je viens d'exécuter les deux codes et cela fonctionne sans souci.

    Par contre je crois comprendre que tu essayes de recréer la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE LANGUAGE plpgsql;
    Si tu as déjà exécuter cette commande dans PgAdminIII et que tu travailles sur la même base dans PhpPgAdmin, tu ne dois pas refaire cette commande !

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    C'est phppgadmin qui génère la requête (erronée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(*) AS total FROM (CREATE LANGUAGE plpgsql) AS sub
    Ca arrive apparemment quand on coche la case pour paginer les résultats, alors qu'on a entré un ordre SQL dans lequel il n'y a pas de résultat, en tout cas pas sous la forme d'une série d'enregistrements.

    Ceci étant, comme dit précédemment, les objets qui ont été créés avec succès avec pgadmin, ce n'est pas la peine de les recréer avec phppgadmin. Les objets sont dans la base de données elle-même, ils ne sont pas dans les outils d'accès à la base.

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

Discussions similaires

  1. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  2. affichage requête sql sous phppgadmin
    Par kerzut dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 12h39
  3. select dans un trigger sous Postgresql
    Par kastor_grog dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/09/2003, 17h00
  4. Triggers sous PostGreSQL
    Par Phaf dans le forum Requêtes
    Réponses: 4
    Dernier message: 05/08/2003, 14h22
  5. Désactiver un trigger sous MS Sql Server
    Par WOLO Laurent dans le forum Développement
    Réponses: 6
    Dernier message: 03/07/2003, 12h51

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