由于项目需求变更,我需要在sqlite数据库的表中删除一个字段,通用的sql操作语句如下:

alter table record drop column name;

结果数据库提示如下错误:

搜索得知,原来SQLite目前还不支持drop column,所以必须想出另外一种方法来进行表字段的删除,读者要是说:“直接删掉这个表,然后在新建不见行了!”。

好吧,既然你这么不怕麻烦那就不需要往下看了。

我采用的方法是通过直接复制并过滤表结构来实现:

复制表结构的sql语句如下:

create table temp as select * from record where 1=2;

后面的where 1=2是为了只复制表的结构,而不会复制表的内容,即不然where条件执行即可,我们也可以写作where 0=1。

好了,继续正题,如上sql语句会复制一个和record表一样表结构的temp表出来,但是我们想要的是去除某一个字段(例如去除record表中的name字段),所以我们需要修改sql语句如下:

create table temp as select recordId, customer, place, time from record where 1 = 2;

这样复制出来的表就会缺少“name”字段,然后我们删除旧表并修改新表名即可。

drop table record;

alter table temp rename to record;

好了,具体操作就是这些,大家如有建议,欢迎回复哦~

最新文章

  1. AsyncTask的初步了解
  2. Maven插件maven-surefire-plugin
  3. HTTP协议开发应用-文件服务器
  4. 在excel单元格中提取信息
  5. UVALive 3977
  6. LCD1602汉字、自定义字符取模
  7. 引用自定义的framework
  8. oraclesql日志
  9. Nutch 是一个开源Java 实现的搜索引擎
  10. Android getTopActivity的方法
  11. 常见web安全隐患及解决方案
  12. Lumen框架-错误&日志
  13. eclipse使用报错集锦
  14. 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)
  15. Python--共享变量
  16. [hbase] HBase内置过滤器的一些总结
  17. troubleshooting-sqoop mysql导入hive 报:GC overhead limit exceeded
  18. stats.js随时查看fps
  19. BZOJ P2157 旅游
  20. Using the FutureRequestExecutionService Based on classic (blocking) I/O handle a great number of concurrent connections is more important than performance in terms of a raw data throughput

热门文章

  1. 把vim当做golang的IDE
  2. 对CPU做下性能测试
  3. Zabbix(二)--第一台主机监控及触发器
  4. Linux命令(ntp)
  5. 利用带关联子查询Update语句更新数据
  6. amr转MP3
  7. 【java】:常用工具类
  8. SaaS模式给用户带来的优势
  9. c# HttpWebRequest 与 HttpWebResponse
  10. C# 基础(7)--线程