sql >> Databasteknik >  >> RDS >> Mysql

Använda en Python dict för en SQL INSERT-sats

Jag tror att kommentaren om att använda detta med MySQL inte är helt komplett. MySQLdb gör inte parameterersättning i kolumnerna, bara värdena (IIUC) - så kanske mer som

placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
# valid in Python 2
cursor.execute(sql, myDict.values())
# valid in Python 3
cursor.execute(sql, list(myDict.values()))

Du kommer dock inte att fly på kolumnerna, så du kanske vill kontrollera dem först...

Se http://mail.python.org/pipermail/tutor/ 2010-december/080701.html för en mer komplett lösning



  1. hur man skapar en lagrad procedur i Oracle som accepterar en rad parametrar

  2. Uppskatta datakomprimeringsbesparingar i SQL Server

  3. 2 sätt att lista alla utlösare i en PostgreSQL-databas

  4. Neo4j - Skapa en begränsning med Cypher