Come ottengo la data e l'ID di riga?
presupponendo che siano colonne sul vostro tavolo ordine chiamato DELIVERY_DATE e ID il trigger dovrebbe essere simile a questo:
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;
Annotare la clausola FOR EACH ROW: che è necessario per valori di riferimento da singole righe. Ho usato un costrutto IF per testare se eseguire l'UPDATE alla consegna. Se non avete altra logica nel vostro grilletto si potrebbe scrivere in questo modo ...
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;
ho risposto alla domanda che hai chiesto, ma, come un a parte, vorrei far notare che il vostro modello di dati è sub-ottimale. Un design correttamente normalizzato potrebbe contenere DELIVERY_DATE su una sola tabella: DELIVERY sembra il posto logico per esso.