Как в PostgreSQL написать хранимую функцию проверки совпадения пары Логин/Пароль?

Доброго времени суток!
Имеется длинная PostgreSQL таблица - sp_users
в ней есть поля: sp_login и sp_pass
как с помощью PL/pgSQL или SQL
написать хранимую функцию вида:

CREATE FUNCTION
AS 'тело функции'
LANGUAGE plpgsql;

И возвращающие результат 1=есть_совпадение_пары; 2=нет_совпадения_пары

Заранее огромное человеческое спасибо!

P.s. Я очень начинающий, если можно с комментариями...
  • Вопрос задан
  • 551 просмотр
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F
CREATE FUNCTION check_login_and_password(
  _login character varying,
  _password character varying
)
  RETURNS boolean AS
$$
  SELECT EXISTS(SELECT * FROM table_name WHERE login = _login OR password = _password);
$$
LANGUAGE sql;

Ну или если вам и впрямь числа нужны в качестве результата:

CREATE FUNCTION check_login_and_password(
  _login character varying,
  _password character varying
)
  RETURNS bigint AS
$$
  SELECT count(*) FROM table_name WHERE login = _login OR password = _password;
$$
LANGUAGE sql;
Ответ написан
Link-Line
@Link-Line Автор вопроса
Решено!
Помогла следующая конструкция:

CREATE FUNCTION check_login_and_password(input_login CHARACTER VARYING, input_pass CHARACTER VARYING) RETURNS boolean AS
$$
SELECT EXISTS(SELECT * FROM sp_users WHERE "public".sp_users.p_login = input_login AND "public".sp_users.p_pass = input_pass );
$$
LANGUAGE sql;

В запрос передаём:
'Логин', 'Пароль'

Если ответ верен возвращает: t (true), если не верен: f (false).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы