Wie erhalte ich das Datum und die Zeilen-ID?
Angenommen, dies sind Spalten in Ihrer ORDER-Tabelle namens DELIVERY_DATE und ID, sollte Ihr Trigger etwa so aussehen:
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;
Beachten Sie die FOR EACH ROW-Klausel:Diese ist erforderlich, um Werte aus einzelnen Zeilen zu referenzieren. Ich habe ein IF-Konstrukt verwendet, um zu testen, ob das UPDATE on Delivery ausgeführt werden soll. Wenn Sie keine andere Logik in Ihrem Trigger haben, könnten Sie es so schreiben ...
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;
Ich habe die von Ihnen gestellte Frage beantwortet, möchte aber nebenbei darauf hinweisen, dass Ihr Datenmodell suboptimal ist. Ein richtig normalisiertes Design würde DELIVERY_DATE nur in einer Tabelle enthalten:DELIVERY scheint der logische Ort dafür zu sein.