如何从android中的sqlite表中删除列?

我尝试使用以下内容删除列

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

LogCat给出以下消息:

11-07 21:18:29.238:ERROR / Database(13952):在准备’ALTER TABLE favs DROP COLUMN favsCount’时,0x34e550上的失败1(接近“DROP”:语法错误)。

是不是可以在Android的sqlite中删除字段?

抱歉,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; 

所以基本上,你必须使用“复制,删除表,创建新表,复制”技术来删除列。

由于mu太短,所以Sqlite不允许使用alter table来删除列。 在这里你可以看到alter语法定义