从表中的Sqlite Dropping Column

时间:2017-10-25 17:39:30

标签: android database sqlite android-sqlite

为什么sqlite数据库有“不从表中删除列”的限制 在一个命令? 在将来的版本中是否有可能添加它?

4 个答案:

答案 0 :(得分:1)

  

SQLite支持ALTER TABLE的有限子集。 ALTER TABLE   SQLite中的命令允许用户重命名表或添加新表   列到现有表。无法重命名列,   删除列,或从表中添加或删除约束。

https://sqlite.org/lang_altertable.html

不,你不能。

  

在将来的版本中是否有可能添加它?

好吧,我们不能告诉你。即使他们会添加它,仍然有很多Android设备有没有该功能的旧版SQLite。

但是,您可以从以下答案中删除这样的列:

https://stackoverflow.com/a/5987838/5457878

答案 1 :(得分:0)

ALTER TABLE语句完全支持那些可以轻松实现的操作,而无需重写整个表。 (添加新列时,所有行中都缺少该值;读取时会替换为列的默认值。)

删除列(或其他内容,如重新排序列)的能力会为SQLite库添加许多复杂的代码。 但是,SQLite被设计为嵌入式数据库,因此必须注意节省资源。不太可能添加如此大量的代码。

答案 2 :(得分:0)

http://www.sqlite.org/faq.html#q11

  

SQLite限制了ALTER TABLE支持,您可以使用该支持将列添加到表的末尾或更改表的名称。如果要在表的结构中进行更复杂的更改,则必须重新创建表。您可以将现有数据保存到临时表,删除旧表,创建新表,然后将数据从临时表中复制回来。

所以你不能只删除列

答案 3 :(得分:0)

ALTER TABLE DROP COLUMN 现在支持,从 2021 年 3 月 12 日发布的 3.35.0 开始。