2012-02-03 19 views
13

MySQL में संग्रहीत प्रक्रिया में अपवाद कैसे उत्पन्न करें? उदाहरण के लिए:MySQL - संग्रहित प्रक्रिया में अपवाद कैसे फेंकें?

CREATE PROCEDURE SALES() 
BEGIN 

STATEMENT... 
STATEMENT... 
STATEMENT... 

IF (PRICE >= 500) THEN 
/** THROWS AN EXCEPTION.... 
    WHAT DO TO STOP THE PROCEDURE. **/ 
END IF; 

STATEMENT... 
STATEMENT... 
STATEMENT... 

END; 

MySQL में मुझे लगता है कि वहाँ कोई रास्ता नहीं एक संग्रहीत प्रक्रिया में एक अपवाद फेंकने के लिए है, लेकिन मैं, गैर-मौजूद तालिका से चयन करके एक त्रुटि मजबूर कर सकते हैं। उदाहरण के लिए:

IF (PRICE > 500) THEN 
    /*throw the error here*/ 
    SELECT * FROM price_greater_than_500_in_throw_exception; 
END IF; 

क्या कोई और शानदार तरीका है?

धन्यवाद।

उत्तर

13

MySQL 5.5 के बाद से आप त्रुटि प्रबंधन के लिए SIGNAL और RESIGNAL का उपयोग कर सकते हैं। इससे पहले MySQL में त्रुटियों को संभालने का कोई तरीका नहीं था। एकमात्र तरीका एक गलत क्वेरी चलाने के लिए है (उदाहरण के लिए गैर मौजूदा तालिका में डालने)।

संबंधित मुद्दे