如何获取日期和行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