在postgresql函数中我试图将从表中选择的两个值分成两个变量,但是我收到了这个错误:
INTO specified more than once at or near "INTO"
这是(伪)代码:
CREATE OR REPLACE FUNCTION func() RETURNS TRIGGER AS
$$
DECLARE
a numeric;
b varchar(20);
c numeric;
BEGIN
IF ... THEN
...
SELECT x INTO a FROM t1 WHERE y = 1
IF a > 5 THEN
SELECT m, n INTO b, c FROM t2 WHERE ...;
...
END IF;
END IF;
END
$$ LANGUAGE plpgsql;
答案 0 :(得分:13)
......几分钟后我发现问题只是(一如既往)缺少分号。
INTO specified more than once
错误是从第二个SELECT
语句生成的(当它找到第二个INTO
时)并且它没有提示在何处找到问题;所以我决定把它放在这里,因为我没有在网上找到关于这个错误的任何内容。
修改强>
只需在第一个SELECT
语句中添加缺少的分号
...
SELECT x INTO a FROM t1 WHERE y = 1; #missing semicolon
IF a > 5 THEN
SELECT m, n INTO b ...;
...