SQLite无法使用drop column删除表字段解决办法

SQLite无法使用drop column删除表字段解决办法,第1张

概述由于项目需求变更,我需要在sqlite数据库的表中删除一个字段,通用的sql *** 作语句如下: alter table record drop column name; 结果数据库提示如下错误: 搜索得知,原来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;
好了,具体 *** 作就是这些,大家如有建议,欢迎回复哦~ 总结

以上是内存溢出为你收集整理的SQLite无法使用drop column删除表字段解决办法全部内容,希望文章能够帮你解决SQLite无法使用drop column删除表字段解决办法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1173321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存