मैं दिनांक और पंक्ति आईडी कैसे प्राप्त करूं?
मान लें कि ये आपकी ORDER तालिका के कॉलम हैं जिन्हें DELIVERY_DATE कहा जाता है और आईडी आपका ट्रिगर कुछ इस तरह दिखना चाहिए:
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;
प्रत्येक पंक्ति के लिए खंड पर ध्यान दें:यह अलग-अलग पंक्तियों से मूल्यों को संदर्भित करने के लिए आवश्यक है। मैंने डिलीवरी पर अद्यतन निष्पादित करने के लिए परीक्षण करने के लिए एक आईएफ निर्माण का उपयोग किया है। यदि आपके ट्रिगर में कोई अन्य तर्क नहीं है तो आप इसे इस तरह लिख सकते हैं...
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 इसके लिए तार्किक स्थान प्रतीत होता है।