【问题标题】:Way to use the entered attribute value for the variable in your function | PostgreSQL在函数中为变量使用输入的属性值的方法 | PostgreSQL
【发布时间】:2020-12-06 15:05:37
【问题描述】:

我陷入了如何将“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;

【问题讨论】:

    标签: postgresql function variables 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;
    

    【讨论】:

    • 不知道这是可能的。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2013-07-08
    相关资源
    最近更新 更多