Acho que você está pretendendo o valor de
db_name
a ser inserido em vez do %s
, como um espaço reservado em C
. Isso não funciona como você descobriu. Em vez disso, você poderia fazer algo como:create_statement = "CREATE DATABASE {:s}".format(db_name)
mycursor.execute(create_statement)
Fazendo assim, você poderá usar a técnica em situações mais complexas onde há mais SQL após o valor que você está tentando substituir.