私は現在、私がテーブル "Person"内のカラム "lastedit"を更新するトリガを構築しようとしているところでプロジェクトに取り組んでいます。トリガー作成で指定されたスキーマ(この場合はCertifications)の表に最後に変更が加えられたときのタイムスタンプ。PostgreSQLでトリガを作成すると "function does not exist"エラーが発生する
私の問題は、関数 "update_lastedit()"を作成した後でトリガーを作成しようとすると、その関数が存在しないというエラーが表示されることです。私はどこかで私の機能に不一致があるかもしれないと思うが、私はそれを見つけることができない。
私のうちからお手伝いできますか?私はPostgreSQL 9.5.5を実行しています。より広範な説明をする必要がある場合は、私に教えてください。これは私の最初の質問ですので、重要なことを見落としている可能性があります。
マイトリガーするためのコードと機能は以下の通りである:
CREATE OR REPLACE FUNCTION update_lastedit() RETURNS TRIGGER AS
$update_edit$
BEGIN
UPDATE ovsoftware.person
SET lastedit = now();
END;
$update_edit$
LANGUAGE plpgsql;
と
CREATE TRIGGER cert_edit_trigger
BEFORE INSERT OR UPDATE ON ovsoftware.certifications
FOR EACH ROW
EXECUTE PROCEDURE update_lastedit();
正確なエラー:
SQL fout:
ERROR: function update_lastedit() does not exist
In statement:
CREATE TRIGGER cert_edit_trigger
BEFORE INSERT OR UPDATE ON ovsoftware.certifications
FOR EACH ROW
EXECUTE PROCEDURE update_lastedit();
正確なエラーで投稿を更新してください - あなたの提供されたコードサンプルはOKです –
完了しました。フィードバックに感謝します! –
ちょうど確かめる - それらがポストで提示される順序とは違って、あなたはトリガーを作成しようとする前に関数を作成します、そうですか? – Mureinik