2015-07-03 74 views
-3

我是PostgreSQL的新手,我目前正在處理觸發器,但我一直在困難。postgresql中的觸發器

我有兩張桌子的學生和房間。

房間ID是學生房間和外鍵中的主鍵。

如果我插入Student,那麼它應該在Room檢查新數據是否存在。

這是一個外鍵檢查約束。我希望任何人都可以幫助我

+3

優秀的PG文檔爲什麼你需要一個觸發器,當你已經有一個外鍵約束? –

+0

對不起,我必須刪除外鍵約束,然後用觸發器執行它 –

+1

爲什麼你要「放棄」外鍵?這比觸發器*效率高得多 –

回答

0

我不知道你的代碼,我沒有得到的意思,但我可以普遍回答。

在PostgreSQL觸發器被在步驟通常定義:

  1. 使用CREATE FUNCTION這個創建的觸發功能,即一個表使用CREATE TRIGGER
  2. 綁定定義觸發功能

觸發功能是一種常見的功能,除了它有一個返回值類型觸發器(此外,它不需要任何參數)。

CREATE OR REPLACE FUNCTION trigger_function() 
    RETURNS trigger 
AS $$ ... $$; 

結合:

CREATE TRIGGER trigger_name 
    AFTER INSERT ON table_name 
    FOR EACH ROW EXECUTE PROCEDURE trigger_function(); 

此外,還請諮詢在PostgreSQL 9.4 Triggers