2012-11-06 192 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(); 

如果任何人有知識,要做到這一點,如果他們能輕推我朝着正確的方向或提供如何做到這一點的例子,我會很感激!

回答