PostgreSQL过程错误-记录“旧”没有字段

时间:2019-12-23 06:48:55

标签: postgresql stored-procedures database-trigger

我正在使用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”?

0 个答案:

没有答案