我正在使用PostgreSQL过程,这是我的代码;
CREATE OR REPLACE FUNCTION public.title_last_procedure()
RETURNS trigger
LANGUAGE plpgsql
AS $function$
BEGIN
if (TG_OP = 'INSERT') then
update
"Titles"
set "entryCount" = "entryCount" + 1,
"lastInsertedDate" = date_trunc('day', (now() + interval '3 hours')),
"lastInsertedTime" = now(),
"entryTodayCount" =
(case
when old."lastInsertedDate" != new."lastInsertedDate" then 1 -- If date different.
else "lastInsertedDate" + 1 -- If date same.
end)
where new."TitleId" = id;
return new;
end if;
return null;
END;
$function$
;
我有两个表 Entries 和 Titles ,我想当我在 Entries 中插入数据时,它会增加 lastInsertDate (标题)表中的。一切正常。但是,如果标题是新标题,则没有任何lastInsertDate,因此“旧”会由于没有任何数据而产生错误。
when old."lastInsertedDate" != new."lastInsertedDate" then 1
DatabaseError [SequelizeDatabaseError]:记录“旧”没有字段“ lastInsertedDate”
如果记录是没有错误的新记录,如何设置lastInsertedDate?或者我该如何检查是否没有old。“ lastInsertedDate”?