Ho un elenco di elenchi, ad esempio [['a','b'],['c','d']]
.Come utilizzare python mysqldb per inserire più righe contemporaneamente
Ho un tavolo chiamato T
e due campi F1
, F2
. Il primo elemento nell'elenco dei campi viene mappato a F1
, il secondo a F2
.
Come posso inserire righe per ogni elenco interno in un singolo comando o chiamata, piuttosto che utilizzare un ciclo for come questo?
for i in [['a','b'],['c','d']]:
c.execute("insert into T (F1,F2) values (%s, %s)", (i[0], i[1]))
È più efficiente dell'utilizzo di mySQL con una manipolazione di stringhe? In modo che la tua stringa è "inserire in T (F1, F2) valori (a, b), (c, d)" e passarlo per eseguire? – Jochen
@Jochen Davvero non vuoi farlo se non sei assolutamente sicuro_ i tuoi dati provengono da una fonte attendibile (e continuo a credere che "non fidarti mai del cliente" è una buona regola da tenere in ogni circostanza). In genere è molto meglio, almeno quando si lavora con una libreria matura come MySQLdb, per lasciare la citazione/codifica/escaping necessaria alla lib piuttosto che tentare da soli; anche se subisce un po 'di sovraccarico, ne vale la pena. – kungphu
Sfortunatamente, questo non funziona con il set di caratteri utf8mb4. Viene generato uno strano errore "codifica sconosciuta: utf8mb4" –