Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

pymysql callproc() tampaknya memengaruhi pemilihan berikutnya

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Garis waktu bagan Google dengan tanggal dalam sumbu x

  2. Melarikan diri dari karakter titik dua ':' dalam kueri JPA

  3. MySQL EXPLAIN:Menggunakan indeks vs. Menggunakan kondisi indeks

  4. MySQL GROUP BY DateTime +/- 3 detik

  5. Apakah ada cara yang lebih efisien untuk membuat pagination di Hibernate daripada menjalankan kueri pilih dan hitung?