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

Sqlalchemy, rå forespørgsel og parametre

Begge mv og ml vil ikke blive genkendt, da du ikke har defineret dem som variable.

Det andet argument for execute statement er en ordbog, og alle elementerne i din almindelige forespørgsel "UPDATE client SET musicVol = :mv , messageVol = :ml" undsluppet med et kolon søges efter i denne ordbogs nøgler. execute metoden fandt ikke en nøgle 'mv' heller ikke 'ml' i denne ordbog, er der derfor rejst en fejl.

Dette er den korrekte version:

db.my_session.execute(
    "UPDATE client SET musicVol = :mv, messageVol = :ml",
    {'mv': music_volume, 'ml': message_volume}
)



  1. Hvordan finder man ud af, hvilke e-mails der er på de samme lister?

  2. SQL dårlig ydelse af plan for udførelse af lagrede procedurer - parametersniffing

  3. Forklar JOIN vs. LEFT JOIN og WHERE-tilstandsforslag mere detaljeret

  4. Er det muligt at køre flere DDL-sætninger i en transaktion (inden for SQL Server)?