SQLite devuelve un error como 'no hay tal columna: foo' si la tabla no contiene la columna:
select foo from yourTable limit 1
también se puede obtener la sentencia de creación de la tabla:
select sql from sqlite_master where tbl_name = 'YourTableName'
y luego analizar el resultado, buscando el nombre-columna. No conozco una manera elegante de consultar la lista de columnas de una tabla específica, aunque puede existir una.
Además, si intenta hacer esto:
alter table YourTable add column foo {column-def whatever it is}
obtiene un error de SQLite si la columna ya existe. También puedes atrapar ese error.
Finalmente usted puede hacer esto:
select sql from sqlite_master
where tbl_name = 'YOURTABLE' and sql like '%"foo" CHAR%'; -- or whatever type
y si la tabla especificada contiene la columna que está rodeado por comillas dobles en la consulta, y con el tipo que ha especificado, obtendrá un resultado, de lo contrario, un conjunto vacío. Especificar el tipo de datos garantiza que su coincidencia de subcadenas LIKE ocurra en un nombre de columna.
que puedas ver las columnas de tabla mediante el uso de 'nombreTabla .schema' – krakover
@krakover ¿No es una respuesta? –
@goreSplatter Dependiendo de lo que esté tratando de lograr. Expliqué cómo evitar el problema, no cómo resolverlo ... \ – krakover