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

Sử dụng Python, chèn nhanh nhiều cột vào Sqlite \ Mysql

Bởi "Dữ liệu mới là danh sách x cột", tôi hình dung ý bạn là x tuples , kể từ đó bạn tiếp tục nói về "tuple đầu tiên". Nếu Newdata là danh sách các bộ giá trị, y = len(Newdata[0]) là số mục trong một trong những bộ giá trị đầu tiên.

Giả sử đó là số bạn muốn (và tất cả các bộ giá trị tốt hơn nên có cùng số mục, nếu không thì executemany sẽ fail!), ý tưởng chung trong câu trả lời của @ Nathan là đúng:xây dựng chuỗi với số lượng dấu hỏi được phân tách bằng dấu phẩy thích hợp:

holders = ','.join('?' * y)

sau đó chèn nó vào phần còn lại của câu lệnh SQL. Cách chèn của @ Nathan phù hợp với hầu hết mọi phiên bản Python 2. nhưng nếu bạn có phiên bản 2.6 trở lên,

sql = 'INSERT INTO testdata VALUES({0})'.format(holders)

hiện đang được ưa thích (nó cũng hoạt động trong Python 3.any).

Cuối cùng,

csr.executemany(sql, Newdata)

sẽ làm được những gì bạn mong muốn. Hãy nhớ thực hiện giao dịch sau khi bạn hoàn tất! -)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL Tree được sắp xếp theo thứ tự của cha mẹ và con

  2. Tính tổng số đang chạy trong MySQL

  3. php chạy một lần và chèn hai lần vào cơ sở dữ liệu mysql

  4. cách kiểm tra và đặt biến mysql max_allowed_packet

  5. kết nối java với mysql bằng jdbc trên osx