Postgresql 触发器函数返回:查询没有结果数据的目标
我正在尝试创建一个触发器函数来验证查询结果,以便执行一个函数。下面的代码返回错误:查询没有结果数据的目标。尽管我几次试图修复它,但还是找不到解决办法Postgresql 触发器函数返回:查询没有结果数据的目标,postgresql,Postgresql,我正在尝试创建一个触发器函数来验证查询结果,以便执行一个函数。下面的代码返回错误:查询没有结果数据的目标。尽管我几次试图修复它,但还是找不到解决办法 BEGIN WITH u AS (SELECT row_number() OVER (ORDER BY observation.observationid) AS obsid, observation.observationid, observation.resulttime, numericvalue.value,
BEGIN
WITH u AS (SELECT row_number() OVER (ORDER BY observation.observationid) AS obsid,
observation.observationid,
observation.resulttime,
numericvalue.value,
series.observablepropertyid,
series.procedureid,
observableproperty.name,
lag(numericvalue.value, 1) OVER (ORDER BY observation.observationid) AS prev_value
FROM observation
JOIN numericvalue ON numericvalue.observationid = observation.observationid
JOIN series ON series.seriesid = observation.seriesid
JOIN observableproperty ON observableproperty.observablepropertyid = series.observablepropertyid
WHERE observableproperty.name::text = 'LivelloInvaso'::text
ORDER BY observation.observationid DESC
LIMIT 1)
SELECT value, prev_value FROM u;
IF u.value >= 463
AND u.prev_value < 463
THEN
perform ___send_mail();
ELSE RETURN null;
END IF;
RETURN null;
END;
我不知道我为什么会犯这个错误。有什么问题?您需要告诉SELECT将结果放入哪个变量
DECLARE
rcd RECORD;
BEGIN
...
SELECT value, prev_value INTO rcd FROM u;
IF rcd.value >= 463
AND rcd.prev_value < 463
谢谢它现在起作用了,这是缺少的通道!