Как да получа датата и идентификатора на реда?
Ако приемем, че това са колони във вашата таблица ORDER, наречена DELIVERY_DATE и идентификатор на задействането ви, трябва да изглежда така:
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;
Обърнете внимание на клаузата FOR EACH ROW:която е необходима за препращане към стойности от отделни редове. Използвах конструкция IF, за да тествам дали да изпълня UPDATE при доставка. Ако нямате друга логика във вашия тригер, можете да го напишете така...
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;
Отговорих на въпроса, който зададете, но настрана ще отбележа, че вашият модел на данни е неоптимален. Правилно нормализиран дизайн би задържал DELIVERY_DATE само на една маса:DELIVERY изглежда логично място за това.