Tôi đang sử dụng mô-đun MySQLdb cho Python (v1.2.3 được biên dịch trước nhị phân cho Windows Python 2.7) để đọc và ghi dữ liệu vào cơ sở dữ liệu MySQL . Khi kết nối được mở, tôi có thể sử dụng kết nối đó để quan sát các thay đổi được thực hiện cho cơ sở dữ liệu trên cùng một kết nối đó, nhưng không thấy các thay đổi được thực hiện bằng kết nối khác, bất kể kết nối khác được thực hiện bằng Python hay không. ứng dụng dòng lệnh MySQL. Trong trường hợp tôi đang cập nhật bằng Python, lưu ý rằng tôi đang chạy lệnh commit() trên kết nối.Kết nối MySQL-python không thấy thay đổi đối với cơ sở dữ liệu được thực hiện trên kết nối khác ngay cả sau khi thay đổi được cam kết
Ví dụ về chương trình chèn kỷ lục mới vào bảng thử nghiệm với một cột VARCHAR:
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()
Ví dụ về chương trình kết thúc in một số lượng kỷ lục liên tục (thay vì in nhất ghi vào nhật đếm). Tôi chỉ có thể cập nhật số lượng bằng cách giết và chạy lại tập lệnh hoặc bằng cách mở một kết nối mới mỗi khi câu lệnh SELECT
được chạy.
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)
'Ngừng sử dụngCảnh báo: begin() không chuẩn và sẽ bị xóa trong 1.3' –
Nhận xét' conn.begin() 'và bỏ ghi chú' conn.commit() '. Điều đó cũng sẽ hoạt động. – Nilesh