zoukankan      html  css  js  c++  java
  • SQLite无法使用drop column删除表字段解决办法

    由于项目需求变更,我需要在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;


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

  • 相关阅读:
    Ios插件开发
    React-Native学习指南
    APP测试基本流程
    iOS开发-由浅至深学习block
    你真的会用UITableView嘛
    iOS系统右滑返回全局控制方案
    优化UITableViewCell高度计算的那些事
    UITableViewCell高度自适应探索--AutoLayout结合Frame
    UITableView优化技巧
    页面间跳转的性能优化(一)
  • 原文地址:https://www.cnblogs.com/riskyer/p/3424216.html
Copyright © 2011-2022 走看看