Saya memiliki masalah yang sama dengan pernyataan INSERT (berkomitmen) yang tidak muncul di database. PyMySQL 0.5 untuk Python 3.2 dan MySQL Community Server 5.5.19.
Saya menemukan solusi untuk saya:alih-alih menggunakan metode execute(), saya menggunakan metode executemany, yang dijelaskan dalam referensi modul dihttp://code.google.com/p/pymssql/wiki/PymssqlModuleReference Ada juga tautan ke contoh.
Perbarui Beberapa saat kemudian, hari ini, saya menemukan bahwa ini belum merupakan solusi lengkap. Keluar yang terlalu cepat() di akhir skrip python membuat data hilang di database. Jadi, saya menambahkan time.sleep() sebelum menutup koneksi dan sebelum keluar() skrip, dan akhirnya semua data muncul!(Saya juga beralih menggunakan tabel myisam)
import pymysql
conn = pymysql.connect(host='localhost', user='root', passwd='', db='mydb', charset='utf8')
conn.autocommit(True)
cur = conn.cursor()
# CREATE tables (SQL statements generated by MySQL workbench, and exported with Menu -> Database -> Forward Engineer)
cur.execute("""
SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @[email protected]@SQL_MODE, SQL_MODE='TRADITIONAL';
DROP SCHEMA IF EXISTS `mydb` ;
CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
USE `mydb` ;
# […]
SET [email protected]_SQL_MODE;
SET [email protected]_FOREIGN_KEY_CHECKS;
SET [email protected]_UNIQUE_CHECKS;
""")
# Fill lookup tables:
cur.executemany("insert into mydb.number(tagname,name,shortform) values (%s, %s, %s)", [('ЕД','singular','sg'), ('МН','plural','p')] )
cur.executemany("insert into mydb.person(tagname,name,shortform) values (%s, %s, %s)", [('1-Л','first','1st'), ('2-Л','second','2nd'), ('3-Л','third','3rd')] )
cur.executemany("insert into mydb.pos(tagname,name,shortform) values (%s, %s, %s)", [('S','noun','s'), ('A','adjective','a'), ('ADV','adverb','adv'), ('NUM','numeral','num'), ('PR','preposition','pr'), ('COM','composite','com'), ('CONJ','conjunction','conj'), ('PART','particle','part'), ('P','word-clause','p'), ('INTJ','interjection','intj'), ('NID','foreign-named-entity','nid'), ('V','verb','v')] )
#[…]
import time
time.sleep(3)
cur.close()
conn.close()
time.sleep(3)
exit()
Saya menyarankan forum/grup https://groups.google.com/forum /#!forum/pymysql-users untuk diskusi lebih lanjut dengan pengembang.