Подтвердить что ты не робот

Как удалить столбец из таблицы sqlite в android?

Я попытался удалить столбец, используя следующие

openDB.execSQL("ALTER TABLE favs" + " DROP COLUMN favsCount");

LogCat выводит следующее сообщение:

11-07 21:18: 29.238: ERROR/Database (13952): Ошибка 1 (около "DROP": синтаксическая ошибка) на 0x34e550 при подготовке "ALTER TABLE favs DROP COLUMN favsCount".

Невозможно удалить поля в sqlite для Android?

4b9b3361

Ответ 1

Извините, SQLite не поддерживает DROP COLUMN:

(11) Как добавить или удалить столбцы из существующей таблицы в SQLite.

SQLite имеет ограниченную поддержку ALTER TABLE, которую вы можете использовать для добавления столбца в конец таблицы или для изменения имени таблицы. [...]

Например, предположим, что у вас есть таблица с именем "t1" с именами столбцов "a", "b" и "c" и что вы хотите удалить столбец "c" из этой таблицы. Следующие шаги иллюстрируют, как это можно сделать:

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;

Таким образом, вы должны использовать технику "копировать, удалять таблицу, создавать новую таблицу, копировать назад" для удаления столбца.

Ответ 2

поскольку mu слишком короткий, говорит, что Sqlite не позволяет делать таблицу alter для удаления столбца. здесь вы можете увидеть изменить определение синтаксиса