我有一个名为Cases的表,其中包含以下字段:
其他领域。
在另一张表中,发票,我将caseid称为foriegn键,例如
现在每当我将记录插入发票时,我想检查invoicedate是否大于或等于cases.dateoffiling(对于该特定发票),如果没有,我想要触发异常或将invoicedate设置为等于dateoffiling (在提交案件之前你不能提出发票)。
我试图用Postgresql pgsql触发器破解我的头脑,包括文档和示例,但我无法在任何地方找到上述场景。任何帮助或指示将不胜感激。
答案 0 :(得分:0)
我想我已经找到了触发功能的解决方案:
CREATE OR REPLACE FUNCTION invoicedatecheck()
RETURNS trigger AS
$BODY$declare
filingdate date;
begin
select dateoffiling from cases where casesid=new.caseid into filingdate;
if new.invoicedate < filingdate then
new.invoicedate = filingdate;
end if;
return new;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION invoicedatecheck()
OWNER TO remoteuser;