Способ использования введенного значения атрибута для переменной в вашей функции | PostgreSQL

#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. Не знал, что это возможно. Большое вам спасибо!