Sqlite删除列方法

时间:2021-11-10 11:21:14
sqlite中是不支持删除列操作的,所以网上 alter table [table_name] drop column [col_name] 这个语句在sqlite中是无效的,而替代的方法可以如下:

1.根据原表创建一张新表
2.删除原表
3.将新表重名为旧表的名称

相关sql语句:

创建:
create table [new_table]
(
    id   integer primary key,
    name text
)

create table [new_table] as select id, name from [old_table]

删除:
drop table if exists [old_table]

重命名:
alter table [new_table] rename to [old_table]

具体参考:http://blog.csdn.net/aben_2005/article/details/6563538


不足之处:
DROP TABLE 语句在缺省模式下不会减少数据库文件的大小, 数据库中空闲的空间将会被后续的 INSERT 操作使用。要移除数据库的*空间, VACUUM 命令。 如果一个数据库开启了 AUTOVACUUM 模式,那么 DROP TABLE 将自动释放空间。