2016-09-09 7 views
1

こんにちは私はtable1とtable2の2つのテーブルを持っています。私はこれを実行したい:テーブルからの妥当性検査でトリガーを作成する

CREATE TRIGGER table1_trigger 
    AFTER UPDATE ON table1 FOR EACH ROW 
WHEN (table2.phone <> 'something') 
    EXECUTE PROCEDURE myprocedure(); 

を、私は上のエラーを取得すると(table2.name <>「何か」)と私が使用していますPostgreSQLの

テーブル2の列名を持つがある場合、アイデアがあります値 'something'を指定してトリガーを作成し、プロシージャを実行します

答えて

0

when条件では、別のテーブルの属性を参照できません。条件は、OLDまたはNEW値の場合のみ可能です。トリガーを作成する方法の詳細については、https://www.postgresql.org/docs/9.1/static/sql-createtrigger.htmlを参照してください。

+0

ありがとうございます、しかし何か提案がありますか? – Taniel

+1

あなたは何をしたいですか?あなたの状態は理にかなっていません。トリガーは、table1の行が更新されたときに実行されます。この行にはtable2への接続はありません。たとえそれがあったとしても。外部キーを介して、そのロジックをプロシージャに実装する必要があります。 – Guenther

+0

table2の列が 'something'lと等しいときにプロシージャを実行したい場合 – Taniel

関連する問題