#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. Функция должна подсчитать всех друзей и вернуть их идентификатор. Если он возвращает идентификатор, насколько я понимаю, функция должна быть детерминированной, или я ошибаюсь?