7

在 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;
4

1 回答 1

24

...几分钟后我发现问题只是(一如既往)缺少分号。

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 ...;
...
于 2013-09-14T15:59:47.900 回答