Делаю функцию для регистрации пользователей. Сначала проверяю существует ли такой телефон или нет, а после делаю запрос. Но почему запрос не хочет работать. sch – это моя схема. Работаю в Postgresql.
CREATE OR REPLACE FUNCTION sch.reg( nam character varying, l_name character varying, o_name character varying, addre address, d_roz date,pol character varying, phon integer,pas character varying, num character varying, let character varying, n_fam character varying, l_fam character varying, o_fam character varying) RETURNS void LANGUAGE 'plpgsql' AS $ $ BEGIN if exists(select log from auth.login_phone where log = phon) then raise exception 'Уже существует такой телефон. В регистрации отказано'; else insert into sch.pupil (name, last_name,name_otch, address, data_roz,d_pol, phone, pass,id_class,id_family,role) select nam,l_name,o_name,addre,d_roz,pol,phon,pas,sch.class.id_class,sch.family.id_family,1 FROM sch.family,sch.pupil,sch.class where sch.family.name = n_fam and sch.family.last_name = l_fam and sch.name_otch = o_fam and sch.class.title = num and sch.class.kurs = let and sch.pupil.id_family = sch.family.id_family and sch.pupil.id_class = sch.class.id_class; end if; END; $ $
Передаю такие параметры в фунциюю
select * from sch.reg('Умя','Умехин','Умеха','(г.Одесса,вул.Кисель,24,12)','2012.01.01','Мужчина',325689742,'11','1','А','Ульнов', 'Сергиевич','Коваленку')
Однако когда ввожу данные мне пишет ОШИБКУ
ERROR: missing FROM-clause entry for table “sch” LINE 3: …name = n_fam and sch.family.last_name = l_fam and sch.name_o…
Не могу понять почему ругается на схему….