почему в нем говорится, что мой оператор sql не нуждается в параметрах

`do $$declare temp_id integer;
begin;
insert INTO public.logindetails(email, pass, dept, designation, status) VALUES($1, $2, $3, $4, $5);
select login_id into temp_id from public.logindetails where email = $1;
INSERT INTO public.studentdetails(login_id, curr_year, enroll_no,full_name) VALUES (temp_id, $6, $7, $8);
end $$;`

Это мой оператор sql, который я пытаюсь выполнить в своем экспресс-приложении. введите здесь описание изображения Это конечная точка моей публикации на стороне сервера. Ниже приведен мой js на стороне клиента: введите здесь описание изображения

и ошибка, которую я получаю: введите описание изображения здесь Я пытался сделать это в графическом интерфейсе postgreSQL, и он отлично работает: введите здесь описание изображения Может ли какая-либо фигура из работы через или часть, где я иду не так и решение для этого.

Просто посмотрите, поможет ли это: введите здесь описание изображения Мы очень признательны за помощь.


person OMKAR AGRAWAL    schedule 13.05.2018    source источник
comment
Какова реализация hash? Это хэширование пароля выглядит подозрительно. В любом случае, это DO. Не могу их параметризовать. Используйте INSERT … RETURNING, чтобы избежать SELECT.   -  person Ry-♦    schedule 13.05.2018
comment
@Ry- почему это хеширование выглядит подозрительно? 2) Спасибо, я нашел решение: WITH getID AS ( INSERT INTO public.logindetails(email, pass, dept, designation, status) VALUES($1, $2, $3, $4, $5) RETURNING login_id ) INSERT INTO public.studentdetails(login_id, curr_year, enroll_no, full_name) SELECT login_id, $6, $7, $8 FROM getID; если у вас есть еще лучшее решение, пожалуйста, предоставьте мне лучшее решение.   -  person OMKAR AGRAWAL    schedule 13.05.2018
comment
Рад, что вы нашли решение! Re: хеширование: соль слишком большая. Вы имели в виду 128 бит вместо 128 байт?   -  person Ry-♦    schedule 14.05.2018
comment
Да, я имел в виду 128 бит, это считается байтами? потому что человек, который сказал мне использовать pbkdfsync, сказал мне, что для этого нужны биты.   -  person OMKAR AGRAWAL    schedule 14.05.2018
comment
Да, это требует подсчета байтов.   -  person Ry-♦    schedule 15.05.2018


Ответы (1)


Я нашел обходной путь для этой проблемы, так как комментарий @Ry- дал мне направление и это, а также это помогло мне с решением.
РЕШЕНИЕ:
Если вам нужно делать операторы как тот, который я пытался, обходной путь:

С getID AS (ВСТАВИТЬ В public.logindetails(email, pass, dept, назначение, статус) VALUES($1, $2, $3, $4, $5) ВОЗВРАЩЕНИЕ login_id)
ВСТАВИТЬ В public.studentdetails(login_id, curr_year, enroll_no, полное_имя) ВЫБРАТЬ login_id, $6, $7, $8 ИЗ getID;

а затем передать параметры по мере необходимости.

person OMKAR AGRAWAL    schedule 13.05.2018