小编use*_*788的帖子

哪个先执行?触发还是规则?

使用 PostgreSQL。

有一个触发器,它在删除后做一些事情,并制定了一个规则,如果某些事情是真的,则停止删除。

我的问题是:该规则是否也会阻止触发器的发生?

触发器定义:

CREATE TRIGGER wypo AFTER INSERT ON "Wyp" FOR EACH ROW EXECUTE PROCEDURE funk_wyp();
Run Code Online (Sandbox Code Playgroud)

触发功能

CREATE OR REPLACE FUNCTION funk_wyp() RETURNS TRIGGER AS '
DECLARE
  dodatek real := (SELECT f.cena FROM filmy f WHERE f.ID = NEW.co);
BEGIN
    UPDATE "zyskiklient" 
       SET "ile" = ile + dodatek 
    WHERE kto = NEW.kto; 
    UPDATE "istotnoscklienta" 
       SET "poziom" = (SELECT poziom(NEW."kto")) 
    WHERE "kto" = NEW.kto;
RETURN NEW;
END; 
' LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)

规则:

CREATE OR REPLACE RULE zasada_delete_konto 
  AS ON DELETE …
Run Code Online (Sandbox Code Playgroud)

postgresql trigger database-design

6
推荐指数
1
解决办法
613
查看次数

标签 统计

database-design ×1

postgresql ×1

trigger ×1