【问题标题】:Sqlite Dropping Column from tableSqlite 从表中删除列
【发布时间】:2017-10-25 17:39:30
【问题描述】:

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

【问题讨论】:

    标签: android database sqlite android-sqlite


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      https://sqlite.org/lang_altertable.html

      不,你不能。

      有没有可能在未来的版本中添加它?

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

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

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

          所以你不能只删除列

          【讨论】:

            猜你喜欢
            • 2011-08-21
            • 1970-01-01
            • 2011-12-24
            • 1970-01-01
            • 1970-01-01
            • 2021-11-30
            • 2023-03-14
            • 2012-04-26
            • 1970-01-01
            相关资源
            最近更新 更多