मैं Python (v1.2.3 विंडोज पाइथन 2.7 के लिए precompiled बाइनरी) के लिए MySQLdb मॉड्यूल का उपयोग कर रहा हूं, एक MySQL डेटाबेस में डेटा पढ़ने और लिखने के लिए । एक बार कनेक्शन खुलने के बाद, मैं उसी कनेक्शन पर डेटाबेस में किए गए परिवर्तनों का निरीक्षण करने के लिए उस कनेक्शन का उपयोग कर सकता हूं, लेकिन किसी अन्य कनेक्शन का उपयोग करके किए गए परिवर्तनों को न देखें, भले ही अन्य कनेक्शन पायथन में बनाया गया हो या कोई बदलाव हो MySQL कमांड लाइन क्लाइंट। इस मामले में जहां मैं पायथन का उपयोग कर अद्यतन कर रहा हूं, ध्यान दें कि मैं कनेक्शन पर प्रतिबद्ध() कमांड चला रहा हूं। प्रोग्राम है जो एक VARCHAR स्तंभ के साथ एक परीक्षण तालिका में नए रिकॉर्ड सम्मिलित करता है कीMySQL-Python कनेक्शन परिवर्तन के बाद भी किसी अन्य कनेक्शन पर किए गए डेटाबेस में परिवर्तन नहीं देखता है
उदाहरण:
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
c = conn.cursor()
c.execute("INSERT INTO test VALUES(%s)", ("Test",))
conn.commit()
c.close()
conn.close()
कार्यक्रम है कि एक निरंतर रिकॉर्ड गिनती मुद्रण समाप्त होता है का उदाहरण (बजाय सबसे अप करने की तारीख रिकॉर्ड मुद्रण की गिनती)। मैं केवल SELECT
कथन चलाए जाने पर स्क्रिप्ट को मारने और फिर से चलाने या फिर एक नया कनेक्शन खोलकर गिनती को अपडेट करने में सक्षम हूं।
import MySQLdb
conn = MySQLdb.connect("localhost", "test", "test", "test")
while True:
input = raw_input("Enter anything: ")
if input == "exit":
break
c = conn.cursor()
c.execute("SELECT COUNT(*) FROM test")
res = c.fetchone()[0]
c.close()
print("Number of records: %d" % res)
'अस्वीकरण चेतावनी: शुरू() गैर-मानक है और 1.3' –
में हटा दिया जाएगा 'conn.begin()' टिप्पणी करें और' conn.commit() 'को अपूर्ण करें। यह भी काम करेगा। – Nilesh