sql >> Database teknologi >  >> RDS >> Mysql

Indsættelse af flere ordbogsobjekter i en MySQL-database ved hjælp af python og MySQLdb

Der er ingen grund til at bruge en generator til at sløjfe over mydata . Indsend bare mydata direkte:

cur.executemany(sql, mydata)

Databaseadapteren vil loope over mydata for dig og et generatorudtryk indsætter kun en unødvendig ekstra loop.

Hvis du ikke får nogen fejlmeddelelser, men der er heller ingen ændringer, skal du kontrollere følgende:

  • Sørg for at begå transaktionen; kør con.commit() efter .executemany() ring.

  • Trippel-tjek at mydata er ikke tom.

Databaseadapteren vil håndtere flydende værdier korrekt for dig; hvis en kolonne er markeret som FLOAT NOT NULL og du sender en Python-float-værdi for den kolonne, Things Just Work. Det er det, SQL-parametre er til for, håndtering af citering af forskellige datatyper korrekt.



  1. Hvad sker der, hvis du ikke forpligter en transaktion til en database (f.eks. SQL Server)?

  2. Opret tabeller med dynamiske navne via lagret procedure

  3. LINQ til MySQL - hvad er den bedste mulighed?

  4. Lagring af id'er som kommaseparerede værdier