だから私はこれらのテーブルがあります。回答と質問。トリガーエラー[plpgsql]
回答テーブルがあります
answerID(PK)
答え
datePosted
questionID
メール
質問表があります
questionID(PK)
質問
datePosted
私が質問に答えるユーザー(電子メール)が属することを確認する電子メール
質問をしたユーザーのユーザーネットワーク(電子メール)。私のユーザーネットワークは、ここにビジネスを持たない別のテーブルから作成することができます。私は、特定のユーザのユーザネットワークを見つける機能を持っています。だから私は、次のコードを書いた:
CREATE OR REPLACE FUNCTION "Social_Network".answers_only_by_users_in_user_network()
RETURNS TRIGGER AS
$$
begin
IF new.email NOT IN (select network_email from "Social_Network".find_user_network(question.email)) then
RAISE EXCEPTION 'user that answered does not belong in user network';
return null;
else
return new;
end if;
end;
$$
LANGUAGE plpgsql VOLATILE
CREATE TRIGGER answer_restriction BEFORE INSERT OR UPDATE ON "Social_Network".answer
for each row execute procedure "Social_Network".answers_only_by_users_in_user_network();
機能find_user_networkは、特定のユーザのユーザネットワークを検索します。 Answerテーブルに対してこのトリガーを作成していますが、関数find_user_networkの入力引数にテーブルQuestionから電子メールを入れたいのでIF文に問題があります。しかし、私のトリガが正しく動作するかどうかを確認するために上記のテーブルからデータを編集しようとすると、エラーが発生します。 エラーは、私はテーブル質問のFROM句のエントリがないことを示しています、そして、それはif文があるトリガ関数の私の3行目を指しています。
私のトリガーは正常に作成され、トリガーも機能します。しかし、そのエラーは持続する。私が間違っていることに関するアイデアは? ありがとう!