#sql #sql-function #hasura
Вопрос:
Я пытаюсь проверить, существует ли уже пользовательская ручка в базе данных в процессе регистрации моих пользователей (пользовательская ручка должна быть уникальной). Я использую Hasura и пытаюсь написать пользовательскую функцию SQL, которая должна возвращать логическое значение (true или false, если пользовательская ручка уже существует).
Я получаю ошибки в «СУЩЕСТВУЕТ» здесь, могу ли я каким-то образом использовать EXISTS для возврата логического значения, если пользовательская ручка существует в таблице или нет? В Hasura я должен вернуть БАЗОВЫЙ тип, что означает, что логическое значение должно быть в порядке (я думаю). Буду очень признателен за любую помощь!
CREATE FUNCTION userhandle_exist(users_row users, search text)
RETURNS BOOLEAN AS $
EXISTS(SELECT * FROM users WHERE users.userhandle = search)
$ LANGUAGE sql STABLE;
Ответ №1:
вы не выбрали результат оператора exists. Итак, это должно быть похоже:
CREATE FUNCTION userhandle_exist(users_row users, search text)
RETURNS BOOLEAN AS $
SELECT EXISTS(SELECT * FROM users WHERE users.userhandle = search)
LANGUAGE sql STABLE;
затем вы можете получить доступ к функции с помощью sql SELECT.