簡體   English   中英

插入或更新時的PostgreSQL觸發器

[英]PostgreSQL Trigger on Insert or Update

我有兩張桌子。 我想在car表上創建一個觸發器,它將根據某個值在fuel表上插入或刪除。

汽車

id - SERIAL
fuel - BOOLEAN

汽油

car_id -  INTEGER

我不包括任何行數據,因為觸發器的描述不需要它。

基本上,我想在Car表上創建一個觸發器:

  • 在插入或更新上運行。
  • 插入Car.idFuel表,如果Car.fuel is true
  • 如果Car.fuel is false ,則觸發器應刪除Fuel表中Fuel.car_id = Car.id所有行。

我該怎么做?

編輯:澄清我正在使用Postgres

既然你沒有提到RDBMS,我認為它是Oracle。 以下是觸發器。 如果您正在使用其他RDBMS,請調整代碼以適合語法。

CREATE OR REPLACE TRIGGER TRG_CAR
   AFTER INSERT OR UPDATE ON CAR
   FOR EACH ROW

   BEGIN

     IF :new.FUEL THEN
       INSERT INTO FUEL (CAR_ID) VALUES (:new.ID);
     ELSE
       DELETE FROM FUEL WHERE CAR_ID = :new.ID;
     END IF;
   END;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM