运行触发器并尝试运行以下函数时出现错误
CREATE OR REPLACE FUNCTION insert_new_sessions()
RETURNS trigger AS
$$
DECLARE
BEGIN
SELECT dblink_exec('dbname=billing port=5432','INSERT INTO md.radacct_test(radacctid,acctsessionid,acctuniqueid,username) select New.radacctid,New.acctsessionid,New.acctuniqueid,New.username' );
RETURN NULL;
EXCEPTION WHEN OTHERS THEN RAISE NOTICE 'insert_new_sessions SQL ERROR: %', SQLERRM;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
错误:
ERROR insert_new_sessions SQL ERROR: missing FROM-clause entry for table "new"
最佳答案
因为字符串中有 NEW,所以 解释为 字符串?尝试将 NEW.xxx 值与字符串的其余部分连接起来。
例如。
插入 md.radacct_test(...) 选择 ' || NEW.radacctid ||', ' || NEW.acctsessionid || ', ' || NEW.acctuniqueid || ', ' || quote_nullable(NEW.username));
关于sql - 触发器函数中的 Postgres dblink_exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827421/