在sqlite中可以使用ALTER TABLE语法对表结构进行修改,从官方的文档说明中,语法如下图:
从图中可以看出,ALTER TABLE仅仅支持表名重命名,添加字段,却没有删除字段的方法。那么该如何实现,当然了首先search
一下,群众们给出的一个解决方案就是将数据备份到一张临时表,删除原始表,然后新建一张剔除了需要删除字段的表,将临时表
数据导入到新表中,然后将新表rename为原始表名。ok,就是这个思路,虽然导入导出很浪费时间,尤其实在包含大量数据及索
引的时候,尤其要注意。但是也没有其他更好的办法。
具体的sql语句如下(语句来源于http://grasswiki.osgeo.org/wiki/Sqlite_Drop_Column):
BEGIN TRANSACTION;
CREATE TABLE t1_new (
foo TEXT PRIMARY KEY,
bar TEXT,
baz INTEGER
);
INSERT INTO t1_new SELECT foo, bar, baz FROM t1;
DROP TABLE t1;
ALTER TABLE t1_new RENAME TO t1;
COMMIT;