NEW.value ОТЛИЧАЕТСЯ ОТ OLD.value, кажется, не имеет никакого эффекта (PostgreSQL) - PullRequest
0 голосов
/ 06 июня 2018

У меня есть первая таблица (A) с полем даты (d) и полем bool (b).Каждый раз, когда d обновляется, он запускает вставку во вторую таблицу (B) с помощью функции:

BEGIN 

    INSERT INTO B(field)
    SELECT d
    FROM A
    WHERE b IS true AND OLD.d IS DISTINCT FROM NEW.d;

    RETURN NEW;

END

Я хочу, чтобы он вставлял элемент, содержащий d в B, только если b истинно и d было простообновляется, но каждый раз, когда функция запускается, каждая дата с b, равным true, вставляется в B, независимо от того, был ли изменен d.

Триггер - это триггер строки, который запускает ПОСЛЕ обновления d.

Полагаю, я делаю что-то не так, но не могу понять, что.

1 Ответ

0 голосов
/ 06 июня 2018

Я подозреваю, что вы хотите что-то вроде этого:

INSERT INTO B (field)
    SELECT d
    FROM (SELECT new.d as d) n
    WHERE new.b IS true AND OLD.d IS DISTINCT FROM NEW.d;

Я не понимаю, почему вы хотите вставить (потенциально) все строки из a.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...