ALTER TABLE Sqlite: ¿cómo verificar si existe una columna antes de modificar la tabla?

Necesito ejecutar en python una consulta SQL que agregue una nueva columna, en sqlite3.

El problema es que a veces ya existe. Entonces, antes de ejecutar la consulta, necesito verificar si la columna ya existe.

Si lo hace, entonces no ejecutaré la consulta.

¿Hay una manera en sqlite para hacer eso? ¿O tengo que hacerlo a través de un bloque try-catch en el código python?

¡Muchas gracias por adelantado!

Puede obtener una lista de columnas para una tabla a través de la siguiente statement:

PRAGMA table_info('table_name'); 

Más detalles sobre los comandos pragma están disponibles en el sitio web de sqlite

OMI esto

 conn = sqlite3.connect(':memory:') c = conn.cursor() try: c.execute('ALTER TABLE mytable ADD COLUMN newcolumn;') except: pass # handle the error c.close() 

Es una mejor opción que construir consultas de casos especiales .

Puede envolver el código anterior en una función AddColumn (cursor, table, column) para poder reutilizarlo,
además hará que el código sea más legible.