0
私はニュース用の小さなテーブルを持っています。私は(唯一の更新された行に対する)行の更新日時と更新時間を設定し、トリガー更新後の更新後のPostgreSQLトリガー
私は以下の作ってみましたようにしたい:
CREATE FUNCTION add_update_dates()
RETURNS TRIGGER
LANGUAGE plpgsql
AS $$
BEGIN
IF (OLD.news_name IS DISTINCT FROM NEW.news_name OR
OLD.news_description IS DISTINCT FROM NEW.news_description OR
OLD.news_text IS DISTINCT FROM NEW.news_text) THEN
UPDATE news SET news_update_date = current_date, news_update_time = current_time;
END IF;
RETURN new;
END
$$;
CREATE TRIGGER update_news_dates
AFTER UPDATE ON news
FOR EACH ROW
EXECUTE PROCEDURE add_update_dates();
をしかし、トリガは、各列を更新します私のテーブル(更新されていないテーブルさえも)は、更新されたテーブルのみを必要とするときです。私は間違って何をしていますか?
update table文は、PostgreSQLで許可されているトリガ内の同じテーブルにありますか?私は、オラクルでは、テーブルの変更でエラーが発生しているはずです。 –
@KaushikNayak: 'AFTER UPDATE'トリガーでは許可されているが、' BEFORE UPDATE'トリガーでは許可されていないと思う。 –