我正在查询是否有结束时间,如果没有,那么我想更新它以包括当前时间。但是,我需要存储如果结束时间存在以及稍后要更新的行的id,但是我不太确定如何执行此操作。
endTime := now();
strresult := 'select end_time from process order by start_time desc limit 1';
IF strresult = '' THEN
UPDATE tasks SET end_time = endTime WHERE id = ???;
END IF;
答案 0 :(得分:1)
您在问SELECT INTO声明。但你不需要它。您不应该将当前时间保存到变量 - 内部事务中时间不会移动。你的代码有点混乱 - 你正在搜索没有打开过程的情况,然后你关闭任务。
IF NOT EXISTS(SELECT *
FROM process
WHERE end_time IS NULL)
THEN
UPDATE tasks SET end_time = CURRENT_TIME
WHERE end_time IS NULL;
END IF;