5
ट्रिगर के बाद परिणाम डेटा के लिए कोई गंतव्य नहीं है मुझे अपने ट्रिगर के साथ समस्या है। एक नई लाइन डालने पर यह जांच करेगा कि लेख बेचा नहीं गया है या नहीं। मैं इसे सॉफ्टवेयर में कर सकता हूं लेकिन मुझे लगता है कि डीबी यह बेहतर करता है।क्वेरी
-- Create function
CREATE OR REPLACE FUNCTION checkSold() RETURNS TRIGGER AS $checkSold$
BEGIN
SELECT offer_id FROM offer WHERE offer_id = NEW.offer_id AND date_sale IS NULL;
IF NOT FOUND THEN
RAISE EXCEPTION 'The Offer is Sold!';
END IF;
RETURN NEW;
END;
$checkSold$ LANGUAGE plpgsql;
-- Create trigger
Drop TRIGGER checkSold ON tag_map;
CREATE TRIGGER checkSold BEFORE INSERT ON tag_map FOR EACH ROW EXECUTE PROCEDURE checkSold();
INSERT INTO tag_map (tag_id,offer_id) VALUES (824,80);
और यह डालने के बाद त्रुटि है।
[WARNING ] INSERT INTO tag_map (tag_id,offer_id) VALUES (824,80)
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function "checksold" line 2 at SQL statement
ट्रिगर के साथ क्या गलत है? इसके बिना महान काम करता है।
धन्यवाद यह काम करता है :-) – ThreeFingerMark