2015-10-01 40 views
1

我用40k條目構建這個數組。用Python插入一個數組到mysql

array = [(value1, value2, value3),(value1, value2, value3),(value1, value2, value3) .... ] 

是否有可能插入這個到MySQL在python一樣的東西:

cursor.execute('''INSERT IGNORE into %s VALUES *array here*''' % (table_name, array)) 
我有傳遞數組變量到MySQL正確麻煩

。任何幫助讚賞。

+0

這是一個類似問題的解決方案已經問過,希望它有幫助http://stackoverflow.com/questions/21612933/insert-array-of-values-into-a-database-using-sql-query – AndreL

+0

它可以很好地檢查您的服務器的最大大小。你可以用'SHOW VARIABLES LIKE'max_allowed_pa​​cket''做到這一點。 – MyGGaN

回答

4

是的,你可以用executemany做到這一點:

cursor.executemany('INSERT IGNORE into %s VALUES(%s, %s, %s)'%table_name, sql_data) 

注意:你不應該使用%將值傳遞到數據庫中,而不是你需要通過他們的execute/executemany第二個參數。我使用%作爲表名,因爲第一個參數是準備好的查詢字符串。

+0

謝謝! executemany是缺失的鏈接。 – six7zero9

+0

不客氣,看看筆記,我編輯了我的答案。 – ahmed

+0

我的意思是昨天更新: cursor.executemany('''INSERT IGNORE INTO%s(col1,col2,col3)VALUES(%% s,%% s,%% s)'''%table_name,(array) ) – six7zero9