Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

pymysql callproc () dường như ảnh hưởng đến các lựa chọn tiếp theo

Tôi gặp sự cố tương tự với các câu lệnh INSERT (đã cam kết) không xuất hiện trong cơ sở dữ liệu. PyMySQL 0.5 für Python 3.2 và MySQL Community Server 5.5.19.

Tôi đã tìm thấy giải pháp cho mình:thay vì sử dụng phương thức execute (), tôi đã sử dụng phương thức thi hành, được giải thích trong tham chiếu mô-đun trên http://code.google.com/p/pymssql/wiki/PymssqlModuleReference Ngoài ra còn có một liên kết đến các ví dụ.

Cập nhật Một lúc sau, hôm nay, tôi phát hiện ra rằng đây vẫn chưa phải là giải pháp đầy đủ. Thoát quá nhanh () ở cuối tập lệnh python khiến dữ liệu bị mất trong cơ sở dữ liệu. Vì vậy, tôi đã thêm time.sleep () trước khi đóng kết nối và trước khi exit () nhập tập lệnh, và cuối cùng tất cả dữ liệu đã xuất hiện! (Tôi cũng đã chuyển sang sử dụng bảng 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()

Tôi đề xuất diễn đàn / nhóm https://groups.google.com/forum / #! forum / pymysql-users để thảo luận thêm với nhà phát triển.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao bản chất của một chỉ mục trong MySQL vẫn không thay đổi khi tôi thêm một chỉ mục mới?

  2. Cách kiểm tra kích thước của tất cả các bảng trong cơ sở dữ liệu trong MySQL

  3. MYSQL - Tham gia bên trong với SAU CẬP NHẬT trong bảng

  4. Làm thế nào để lấy giá trị từ Javascript Prompt Box và truyền nó vào biến PHP để có thể lưu trong SQL?

  5. Truy vấn SQL:danh sách tất cả các ID đã hoạt động trong một khoảng thời gian nhất định, được sắp xếp theo thời gian bắt đầu của chúng