在sqlite中,如何删除字段? how to drop a column in sqlite

在sqlite中可以使用ALTER TABLE语法对表结构进行修改,从官方的文档说明中,语法如下图:
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;
posted @ 2014-12-13 07:54  花生!~~  阅读(3178)  评论(0编辑  收藏  举报