Рейтинг:
11
Wendelius
Не уверен, правильно ли я понимаю вопрос, но вы должны возвращать только одно значение. Что-то вроде
CREATE OR REPLACE FUNCTION max_emp_id_select() RETURNS integer AS
$BODY$
DECLARE
p_emp_id integer;
BEGIN
SELECT COALESCE(max(emp_id),0)
INTO p_emp_id
FROM Employee;
RETURN p_emp_id + 1;
END;
$BODY$
LANGUAGE plpgsql;
Извините за любые опечатки. Прошло уже много лет с тех пор, как я в последний раз использовал pgplsql...
ДОБАВЛЕН
------
Попробуйте с помощью
UPDATE employee1
SET emp_id = max_emp_id_select()
WHERE ...
Member 13140552
это что-то правильное, но мы хотим, чтобы это значение переменной было вложенным запросом, например, получить максимальное число и обновить другую таблицу до этого значения переменной
Wendelius
Можете ли вы опубликовать пример того, как вы собираетесь использовать эту функцию?
Member 13140552
Выберите COALESCE(max(emp_id),0)
В p_emp_id
от сотрудников;
обновление employee1 установить код emp_id = p_emp_id //здесь переменная p_emp_id не может получить доступ для обновления emp_id и также не работает в p_emp_id
Wendelius
Не уверен, правильно ли я понял ваш комментарий, но можете ли вы использовать эту функцию в заявлении? Смотрите обновленный пример.