Jak uzyskać datę i identyfikator wiersza?
Zakładając, że są to kolumny w Twojej tabeli ORDER o nazwie DELIVERY_DATE i ID, Twój wyzwalacz powinien wyglądać mniej więcej tak:
CREATE OR REPLACE TRIGGER your_trigger_name
BEFORE UPDATE ON Order
FOR EACH ROW
BEGIN
if :new.delivery_date != :old.delivery_date
then
UPDATE Delivery d
set d.delivery_date = :new.delivery_date
where d.order_id = :new.id;
end if;
END;
Zwróć uwagę na klauzulę FOR EACH ROW:która jest niezbędna do odwoływania się do wartości z poszczególnych wierszy. Użyłem konstrukcji IF, aby sprawdzić, czy wykonać UPDATE przy dostawie. Jeśli nie masz innej logiki w swoim wyzwalaczu, możesz napisać to w ten sposób...
CREATE OR REPLACE TRIGGER your_trigger_name
BEFORE UPDATE OF delivery_date ON Order
FOR EACH ROW
BEGIN
UPDATE Delivery d
set d.delivery_date = :new.delivery_date
where d.order_id = :new.id;
END;
Odpowiedziałem na zadane przez Ciebie pytanie, ale na marginesie zaznaczę, że Twój model danych nie jest optymalny. Prawidłowo znormalizowany projekt utrzymałby DELIVERY_DATE tylko na jednym stole:DELIVERY wydaje się być dla niego logicznym miejscem.