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
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
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();
Une petite aide SVP
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 ;
Partager