觸發我有我的觸發一個問題:在PostgreSQL中創建
CREATE OR REPLACE FUNCTION process_fillDerivedFrom_used() RETURNS TRIGGER AS $fillDerivedFrom_used$
DECLARE
prog varchar(255);
current varchar(255);
BEGIN
SELECT u.iduseentity as prog ,g.idCreatedEntity as current
FROM entity e
JOIN used u ON e.identity=u.iduseentity
JOIN activity a ON a.idactivity=u.idusedactivity
JOIN generatedby g ON g.idcreatoractivity=a.idactivity
INSERT INTO DERIVEDFROM VALUES (prog,current)
END;
$fillDerivedFrom_used$ LANGUAGE plpgsql;
CREATE TRIGGER fillDerivedFrom_used
AFTER INSERT OR UPDATE OR DELETE ON emp
FOR EACH ROW EXECUTE PROCEDURE process_fillDerivedFrom_used();
我用3個表,查詢是正確的,所以我認爲錯誤不從這裏來。但是當我在終端上覆制過這個觸發器時,沒有任何事情發生,沒有錯誤信息,我可以在終端中寫入,但是我不能執行任何查詢,就像我在觸發器中忘記了某些內容,所以我認爲它並沒有完全創建。
我想我在學校和postgresql中混合使用2種語言的PL/SQL。
謝謝你的幫助
你應該選擇到變量,而不是別名...你選擇 –
後錯過分號和你定義功能看起來很奇怪 - 你想查詢該四個表EMP上的每一行加入..爲什麼不'insert into DERIVEDFROM select ... all_your_select ...'... ..請記住 - 你不在這裏操作NEW或OLD記錄 - 它看起來不像觸發器函數 –