为什么sqlite数据库有“不从表中删除列”的限制 在一个命令? 在将来的版本中是否有可能添加它?
答案 0 :(得分:1)
SQLite支持ALTER TABLE的有限子集。 ALTER TABLE SQLite中的命令允许用户重命名表或添加新表 列到现有表。无法重命名列, 删除列,或从表中添加或删除约束。
https://sqlite.org/lang_altertable.html
不,你不能。
在将来的版本中是否有可能添加它?
好吧,我们不能告诉你。即使他们会添加它,仍然有很多Android设备有没有该功能的旧版SQLite。
但是,您可以从以下答案中删除这样的列:
答案 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 开始。