如何在3个不同的表中使用触发器

时间:2019-03-27 09:48:03

标签: postgresql database-trigger

尊敬的StackOverFlow成员,

我有3张桌子。 bdc(bdc_id,bdc_name,bdc_gc) stt(s​​tt_id,stt_gc) bts(bts_id,bts_pmv)

我想要stt_gc = 'Checked'然后设置bdc_gc = 'Sent'bts_pmv = 'To do'

我使用Postgresql 11 ,并从触发器/存储过程开始 我尝试检查if条件stt_gc的值,并根据其主键与正确的bdc_gc bts_pmv进行匹配。

create or replace function before_stt_gc() returns trigger
  language plpgsql
as
$$
begin

    if new.stt_gc='Checked' then
      select bdc_gc from bdc
      where new.stt_id = bdc_id;
      doe_gc_bts= 'Sent';
      select bts_pmv from bts
      where new.stt_id = bts_id;
      bts_pmv = 'To do'
    end if;
  end;
$$;

create trigger before_stt_gc_trigger before insert or update on stt
  for each row 
  execute procedure before_stt_gc();

很明显,如果我在这里是因为我的代码完全错误... 我想从中学到东西,所以如果可能的话,请向我解释我在做什么错,或者我的方法缺乏洞察力

1 个答案:

答案 0 :(得分:1)

我想您正在route.post('/ninjas',function(req,res,next) { Ninja.create(req.body).then(function(ninja) { console.log("POST"+req.body); res.send(ninja); }) .catch(next); }); 语句中寻找update

IF