के माध्यम से फ़ंक्शन बनाएं I Python में MySQLdb lib का उपयोग करने में बहु-कथन फ़ंक्शन या प्रक्रिया को कैसे परिभाषित किया जा सकता है?MySQLdb
उदाहरण:
import MySQLdb
db = MySQLdb.connect(db='service')
c = db.cursor()
c.execute("""DELIMITER //
CREATE FUNCTION trivial_func (radius float)
RETURNS FLOAT
BEGIN
IF radius > 1 THEN
RETURN 0.0;
ELSE
RETURN 1.0;
END IF;
END //
DELIMITER ;""")
निम्नलिखित में से कौन ट्रैस बैक बनाता है:
Traceback (most recent call last):
File "proof.py", line 21, in <module>
DELIMITER ;""")
File "build/bdist.macosx-10.5-i386/egg/MySQLdb/cursors.py", line 173, in execute
File "build/bdist.macosx-10.5-i386/egg/MySQLdb/connections.py", line 35, in defaulterrorhandler
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //\nCREATE FUNCTION trivial_func (radius float) \n RETURNS FLOAT\n\n ' at line 1")
मैं एक mysql खोल ग्राहक में सीधे ही एसक्यूएल कॉपी करते हैं, यह उम्मीद
जब तक आपको आवश्यकता न हो। उदाहरण के लिए डेटाबेस निर्माण स्क्रिप्ट चलाएं। क्या कच्चे एसक्यूएल को MySQL में पास करने का कोई तरीका है? –
@ ब्रायनहंट, आप गतिशील एसक्यूएल एपीआई के माध्यम से एक मनमानी एसक्यूएल स्क्रिप्ट सबमिट नहीं कर सकते हैं, क्योंकि कई कमांड केवल 'mysql' क्लाइंट द्वारा मान्यता प्राप्त हैं, सर्वर SQL पार्सर नहीं। –
विधेयक, स्पष्टीकरण के लिए धन्यवाद। बी –