Como faço para obter a data e o ID da linha?
Supondo que sejam colunas em sua tabela ORDER chamadas DELIVERY_DATE e ID, seu gatilho deve ser algo assim:
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;
Observe a cláusula FOR EACH ROW:ela é necessária para referenciar valores de linhas individuais. Eu usei uma construção IF para testar se deve ser executado o UPDATE na entrega. Se você não tiver outra lógica em seu gatilho, poderá escrevê-lo assim ...
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;
Respondi à pergunta que você fez, mas, como um aparte, salientarei que seu modelo de dados está abaixo do ideal. Um design devidamente normalizado manteria DELIVERY_DATE em apenas uma tabela:DELIVERY parece o lugar lógico para isso.