Solución:
De: http://www.sqlite.org/faq.html:
(11) ¿Cómo agrego o elimino columnas de una tabla existente en SQLite?
SQLite tiene soporte ALTER TABLE limitado que puede usar para agregar una columna al final de una tabla o para cambiar el nombre de una tabla. Si desea realizar cambios más complejos en la estructura de una tabla, tendrá que volver a crear la tabla. Puede guardar los datos existentes en una tabla temporal, eliminar la tabla anterior, crear la nueva tabla y luego copiar los datos de la tabla temporal.
Por ejemplo, suponga que tiene una tabla llamada “t1” con los nombres de columnas “a”, “b” y “c” y que desea eliminar la columna “c” de esta tabla. Los siguientes pasos ilustran cómo se puede hacer esto:
BEGIN TRANSACTION; CREATE TEMPORARY TABLE t1_backup(a,b); INSERT INTO t1_backup SELECT a,b FROM t1; DROP TABLE t1; CREATE TABLE t1(a,b); INSERT INTO t1 SELECT a,b FROM t1_backup; DROP TABLE t1_backup; COMMIT;
En lugar de eliminar la tabla de respaldo, simplemente cámbiele el nombre …
BEGIN TRANSACTION;
CREATE TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
ALTER TABLE t1_backup RENAME TO t1;
COMMIT;
Para simplificar, ¿por qué no crear la tabla de respaldo a partir de la declaración de selección?
CREATE TABLE t1_backup AS SELECT a, b FROM t1;
DROP TABLE t1;
ALTER TABLE t1_backup RENAME TO t1;