Как создать функцию, которая вернет идентификатор друга. Таблица друзей имеет два первичных ключа и один идентификатор внешнего ключа из таблицы пользователей

#sql

#sql

Вопрос:

Я попробовал этот способ:

 CREATE FUNCTION `num_friends`(id int) RETURNS int(11)
    DETERMINISTIC
BEGIN
    declare res int;

    select id 
    into res 
    from friendship 
    where `id_friend` = id or `id_user` = id;

    return (res);
END
  

Комментарии:

1. Процедурный код сильно зависит от поставщика — поэтому, пожалуйста, добавьте тег, чтобы указать, используете ли вы mysql , postgresql , sql-server , oracle или db2 — или что-то совсем другое.

2. Таблица может иметь только один первичный ключ. Однако этот первичный ключ может иметь два столбца.

3. Функция, которая выбирает данные таблицы, никогда не может быть детерминированной.

4. Функция должна подсчитать всех друзей и вернуть их идентификатор. Если он возвращает идентификатор, насколько я понимаю, функция должна быть детерминированной, или я ошибаюсь?