Je cherche de la documentation sur le conflit entre un nom
Partons du code suivant, qui fonctionne :
Si j'oublie de préfixer la colonne nom en compte.nom, j'obtiens un résultat idiot : si le nom de colonne n'est pas préfixé, il est masqué par la variable nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE OR REPLACE FUNCTION test_sur_insert(nom text) RETURNS integer AS $$ DECLARE repid integer; BEGIN SELECT id INTO repid FROM compte WHERE compte.nom=nom; RETURN repid; END; $$ LANGUAGE plpgsql; select test_sur_insert('moi');
Par contre, cela ne marche plus
Ca marche encore si j'essaye de faire la même chose dans la clause INTO :
C'est la cata par contre si j'essaye de passer une requête INSERT. Il plante sur les préfixes. Si j'essaye de protéger les noms de colonnes avec des guillemets, ca ne marche pas non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT compte.id INTO id FROM compte WHERE compte.nom=nom;
Y a-t-il un document qui référence la façon dont ces conflits sont gérés ? Et une solution pour la méthode INSERT ?
Archeboc.
Partager