如何獲取日期和行ID?
假設這些都是你叫DELIVERY_DATE ORDER表和ID列的觸發應該是這個樣子:
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構造來測試是否在Delivery上執行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似乎是它的合乎邏輯的地方。
來源
2010-04-20 21:21:26
APC