[Python-es] Necesito verificar o crear una tabla que contiene en el nombre una variable?

Diego Uribe Gamez diego.uribe.gamez en gmail.com
Mie Mar 14 18:15:26 CET 2012


La intención es insertar en una base de datos el dato idunidad en el campo
id, la cuestión es que si no existe la tabla numero '12345' (variable) la
cree, pero que si ya existe solo guarde el dato.
-----------------------------------------------------------------------------------------
variable = '12345'
idunidad = 2501
sql = ("""insert into u_%(variable)s ( id ) VALUES (%s)""")
# si puede guardar la variable en la base de datos hacer:
if cursor.execute(sql, (idunidad,) % {table_name: table_name}):
    db.commit()
    cursor.close()
    db.close()
# Pero si no puede porque la base de datos no existe, crear la base de
datos y guarde el dato.
else:
    cursor.execute('''create table u_%(variable)s stocks (id)''')
    cursor.execute(sql,(id,) % {table_name: table_name})
    db.commit()
    cursor.close()
    db.close()
-----------------------------------------------------------------------------------------
Al final me sale este error:
TypeError: unsupported operand type(s) for %: 'tuple' and 'dict'

No logro hacer que variable entre a la consulta como el contenido de la
variable = '12345' que es dinamica y lograr hacer que la base de datos
nueva quede con el nombre: u_12345, alguna sugerencia?


-- 
 *Diego Alonso Uribe Gamez*
------------------------------

*Desarrollador web*

Twitter: @DiegoUG <http://www.twitter.com/DiegoUG>

Google+: http://gplus.to/diegoug
------------------------------
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120314/86815daf/attachment.html>


Más información sobre la lista de distribución Python-es