#postgresql #function #variables #plpgsql
#postgresql #функция #переменные #plpgsql
Вопрос:
Я застрял на том, как использовать введенное значение для «Airline_ID» для моей переменной «_var». Мне нужно проверить, существует ли «Airline_ID», и если нет, мне нужно вывести сообщение.
CREATE OR REPLACE FUNCTION add_flight(
PLAN_ID INT,
AIRLINE_ID INT,
STATUS_ID INT)
RETURNS void AS $BODY$
DECLARE
SELECT AIRLINE_ID INTO _var; -- <-Problem
BEGIN
INSERT INTO flug.flugplan
VALUES(
PLAN_ID,
AIRLINE_ID,
STATUS_ID);
IF _var > 8 THEN raise notice 'test123';
ELSEIF _var < 1 THEN raise notice '123test';
ELSE raise notice 'Worked!';
END IF;
END;
$BODY$ LANGUAGE plpgsql;
Ответ №1:
Нет необходимости копировать значение параметра. Вы можете получить доступ к параметру непосредственно в операторе IF:
CREATE OR REPLACE FUNCTION add_flight(
PLAN_ID INT,
AIRLINE_ID INT,
STATUS_ID INT)
RETURNS void AS
$BODY$
BEGIN
INSERT INTO flug.flugplan
VALUES(
PLAN_ID,
AIRLINE_ID,
STATUS_ID);
IF airline_id > 8 THEN raise notice 'test123';
ELSEIF airline_id < 1 THEN raise notice '123test';
ELSE raise notice 'Worked!';
END IF;
END;
$BODY$
LANGUAGE plpgsql;
Комментарии:
1. Не знал, что это возможно. Большое вам спасибо!