でトリガーを作成します。は私が私のトリガーに問題が持っている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を混在させると思います。あなたは私はあなたが持っているどのような問題を知らない
あなたは変数にではなく、別名として選択する必要があります...あなたが選択 –
後にセミコロンを欠場し、あなたの定義機能は奇妙に見える - あなたは4つの表はEMPの各行に参加することを照会したいです..? DERIVEDFROM select ... all_your_select ... 'に挿入するのはなぜですか?ここでNEWまたはOLDレコードを操作しないでください - トリガー機能のようには見えません –