2008-09-18 19 views

उत्तर

4

this bug के अनुसार, वर्तमान में वैकल्पिक पैरामीटर बनाने का कोई तरीका नहीं है।

4

वैकल्पिक पैरामीटर mySQL संग्रहीत प्रक्रियाओं में समर्थित नहीं हैं, और न ही इस कार्यक्षमता को इस समय जोड़ने की कोई मौजूदा योजना है। मैं वैकल्पिक पैरामीटर के लिए शून्य गुजरने की सिफारिश करेंगे।

4

(कुछ भद्दा) वैकल्पिक हल मैं इस्तेमाल किया पैरामीटर मैंने सोचा कि मैं उपयोग कर सकते हैं और फिर देखने के लिए परीक्षण करता है, तो वैकल्पिक पैरामीटर का मान उपयोग करने से पहले शून्य नहीं है की एक संख्या को परिभाषित करने गया था:

CREATE PROCEDURE add_product(product_name VARCHAR(100), product_price FLOAT, 
          cat1 INT, cat2 INT, cat3 INT) 
-- The cat? parameters are optional; provide a NULL value if not required 
BEGIN 

    ... 

    -- Add product to relevant categories 
    IF cat1 IS NOT NULL THEN 
    INSERT INTO products_to_categories (products_id, categories_id) VALUES (product_id, cat1); 
    END IF; 
    IF cat2 IS NOT NULL THEN 
    INSERT INTO products_to_categories (products_id, categories_id) VALUES (product_id, cat2); 
    END IF; 
    IF cat3 IS NOT NULL THEN 
    INSERT INTO products_to_categories (products_id, categories_id) VALUES (product_id, cat3); 
    END IF; 

END 

हैं संग्रहित कॉल करते समय मैं पैरामीटर का उपयोग नहीं करना चाहता, मैं बस एक पूर्ण मान पास करता हूं।

CALL add_product("New product title", 25, 66, 68, NULL); 
+0

IFNULL (यहाँ ऊपर संग्रहीत प्रक्रिया का एक उदाहरण कहा जा रहा है) समारोह इस संदर्भ में बहुत अच्छी तरह से फिट बैठता है; मैंने अभी एक INSERT क्वेरी की VALUES सूची में, इनलाइन को कार्यान्वित किया है। –

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