gpt4 book ai didi

android - 你能删除 SQLite 数据库中的列吗?

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:21 25 4
gpt4 key购买 nike

我目前正在开发的 Android 应用程序动态地将列添加到 SQLite 数据库。我遇到的问题是我无法找到从数据库中删除这些列的方法。

如果我将 A、B、C、D 和 E 列添加到数据库中,以后是否可以删除 C 列?

我环顾四周,我能找到的最接近的解决方案是需要构建备份表并将所有列(要删除的列除外)移动到该备份表中。

不过,我不知道该怎么做。我动态添加所有列,因此它们的名称未在我的 Java 代码中定义为变量。似乎没有办法通过使用 Android 的 SQLiteDatabase 来检索列名。

最佳答案

SQLite 对 ALTER TABLE 的支持有限,您可以使用它在表的末尾添加一列或更改表的名称。

如果要对表的结构进行更复杂的更改,则必须重新创建表。您可以将现有数据保存到临时表中,删除旧表,创建新表,然后将数据从临时表中复制回来。

例如,假设您有一个名为“t1”的表,其中列名称为“a”、“b”和“c”,并且您想要从该表中删除列“c”。以下步骤说明了如何做到这一点:

BEGIN TRANSACTION;
CREATE TEMPORARY TABLE t1_backup(a,b);
INSERT INTO t1_backup SELECT a,b FROM t1;
DROP TABLE t1;
CREATE TABLE t1(a,b);
INSERT INTO t1 SELECT a,b FROM t1_backup;
DROP TABLE t1_backup;
COMMIT;

关于android - 你能删除 SQLite 数据库中的列吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6865681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com