Comment obtenir la date et l'identifiant de ligne?
En supposant que ce sont des colonnes sur votre table ORDER appelé DELIVERY_DATE et l'ID de votre déclencheur devrait ressembler à ceci:
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;
Notez la clause FOR EACH ROW: ce qui est nécessaire aux valeurs de référence de lignes individuelles. J'ai utilisé une construction IF pour tester si exécuter le UPDATE à la livraison. Si vous avez pas d'autre logique dans votre déclencheur, vous pouvez l'écrire comme ça ...
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;
J'ai répondu à la question que vous avez posée, mais, en aparté, je ferai remarquer que votre modèle de données est sous-optimal. Un design correctement normalisé devrait contenir DELIVERY_DATE sur une seule table: DELIVERY semble être l'endroit logique pour cela.