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

Langage SQL Discussion :

Création d'un nouvel utilisateur à partir d'une table [Postgres]]


Sujet :

Langage SQL

  1. #1
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut Création d'un nouvel utilisateur à partir d'une table [Postgres]]
    Bonjour,

    J'essai de faire un trigger pour créer des utilisateur à partir d'une table user

    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
    CREATE OR REPLACE FUNCTION creation_user() RETURNS trigger AS '
     
    DECLARE
     idfy VARCHAR(255);
     passwd VARCHAR(32);
    BEGIN
    SELECT login, mdp INTO idfy, passwd FROM utilisateur WHERE id_utilisateur=(SELECT MAX(id_utilisateur) FROM utilisateur) ;
     
     IF idfy is not null 
    	THEN
    	CREATE USER idfy WITH PASSWORD ''passwd'' LOGIN ;
     
     END IF;
    RETURN NULL;
    END;
    ' LANGUAGE plpgsql;
     
     
    CREATE TRIGGER create_user AFTER INSERT ON utilisateur FOR EACH ROW EXECUTE PROCEDURE creation_user();

    Mais le problème c'est que l'uyilisateur crée est idfy et non pas le dernier utilisateur.

    J'ai donc testé cette méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE FUNCTION creation_user() RETURNS trigger AS '
    BEGIN
     
    	CREATE USER new.login WITH PASSWORD ''new.mdp'' LOGIN ;
     
     
    RETURN NULL;
    END;
    ' LANGUAGE plpgsql;
     
     
    CREATE TRIGGER create_user AFTER INSERT ON utilisateur FOR EACH ROW EXECUTE PROCEDURE creation_user();
    Le problème c'est qu'il y a une erreur pres de New, mais je ne sais pas vraiment pourquoi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERREUR:  erreur de syntaxe sur ou près de « . »
    LINE 4: CREATE USER new.login WITH PASSWORD ''new.mdp'' LOGIN ;
    Une petite aide SVP

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Bonjour,

    j'ai repris le 1er trigger qui était pas si mal que ca :

    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
     
    CREATE OR REPLACE FUNCTION creation_user()
      RETURNS trigger AS
    $BODY$
    BEGIN
     
     IF new.idfy is not null 
    	THEN
    	execute  'CREATE USER ' || NEW.idfy || ' WITH PASSWORD ' || quote_literal(new.passwd);
     
     END IF;
    RETURN null;
    END ;
    $BODY$
      LANGUAGE plpgsql;

  3. #3
    Membre du Club Avatar de pony99
    Femme Profil pro
    Inscrit en
    Mars 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 161
    Points : 69
    Points
    69
    Par défaut
    Nickel ça fonctionne

    Merci bcp punkoff

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/07/2014, 12h08
  2. Réponses: 2
    Dernier message: 26/05/2011, 12h38
  3. [MySQL] Création d'un fichier xml à partir d'une table
    Par astrolane dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 27/12/2006, 23h12
  4. Réponses: 3
    Dernier message: 19/06/2006, 10h26
  5. Réponses: 3
    Dernier message: 03/11/2005, 16h04

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