2012-11-06 142 views
0

我有一个表,我们可以称之为甲板。 Decks有一个id用作主键和其他一些属性。卡表包含对卡座ID的外键引用,并且还具有cardid的主键。另外一个表格称为答案,其外键是cardid。创建触发器删除记录

因此,为了从甲板到删除,数据库需要我的答案,从甲板上删除,然后再卡,然后最后。

我想创建一个触发器,它负责将第一和第二删除,这样我只有从甲板表指定一个delete语句彻底摧毁的甲板。

下面是一个例子PostgreSQL触发我发现,但我不知道,如果它甚至有可能做我问,因为我可以在网上找到任何人创建触发器这样的没有例子。

CREATE OR REPLACE FUNCTION autoCalculate() RETURNS TRIGGER AS $$ 
     BEGIN 

     IF NEW.wins < 0 THEN 
       RAISE EXCEPTION 'Wins cannot be negative'; 
     END IF; 

     IF(OLD.wins <> NEW.wins_ OR (OLD.losses <> NEW.losses) THEN 
       NEW.Winning_Percentage := calc_winning_percentage(NEW.Wins, NEW.Losses); 
     END IF 

     RETURN NEW; 
     END; 
$$ LANGUAGE plpgsql; 

DROP TRIGGER update_winning_percentage ON standings; 
CREATE TRIGGER update_winning_percentage BEFORE INSERT OR UPDATE ON standings 
FOR EACH ROW EXECUTE PROCEDURE autoCalculate(); 

如果任何人有知识,要做到这一点,如果他们能轻推我朝着正确的方向或提供如何做到这一点的例子,我会很感激!

回答