Käivitan PostgreSQLis funktsiooni, kuid seda ei täideta, sest ei leita funktsioonis viidatud tabelit. Mis on viga ja kuidas seda lahendada?

Näide: Lõin andmebaasis funktsiooni f_on_juhataja

SELECT f_on_juhataja(p_kasutajanimi:='joy.hawkins@geekosis.name', p_parool:='Boss');

ERROR: relation "isik" does not exist

LINE 2: FROM isik INNER JOIN tootaja ON isik.isik_id = tootaja.isik_...

Postitas Erki Eessaar
Kirjutasite funktsiooni loomise lauses:

SET search_path = 'public, pg_temp'

Tekst, mis on apostroofide e ülakomade vahel, on PostgreSQLi jaoks kokku üks skeemi nimi. PostgreSQL hakkas otsima sellise nimega skeemist tabelit Isik. Kuna sellist skeemi andmebaasis ei ole, siis ei leitud ka tabelit.

Õige on kirjutada otsingutee ilma ülakomadeta:

SET search_path = public, pg_temp

Otsingutee on vajalik, et SECURITY DEFINER funktsioon oleks turvaline.

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!