sql >> Databasteknik >  >> RDS >> Mysql

MySQLdb.cursor.execute kan inte köra flera frågor

Som alla Python DB-API 2.0 implementeringar , cursor.execute() Metoden är utformad för att bara ta en uttalande, eftersom det ger garantier om markörens tillstånd efteråt.

Använd markören. executemany() metod istället. Observera att enligt DB-API 2.0-specifikationen :

Använder detta för flera INSERT uttalanden borde vara bra:

cursor.executemany('INSERT INTO table_name VALUES (%s)',
    [(1,), ("non-integer value",)]
)

Om du behöver köra en serie olika satser som från ett skript, kan du i de flesta fall bara dela satserna på ; och mata varje sats till cursor.execute() separat.



  1. Python Pandas skriver till sql med NaN-värden

  2. Beräkna antalet poster för varje datum mellan 2 datum

  3. sqlite returnerade:felkod =1, msg =ingen sådan kolumn:kök1

  4. Ändra utdataformat för MySQL kommandoradsresultat till CSV