Проверьте, существует ли пользовательская ручка в базе данных sql с помощью hasura

#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.