gpt4 book ai didi

android - 检测表是否包含 Android/sqlite 中的列

转载 作者:IT王子 更新时间:2023-10-29 06:30:20 25 4
gpt4 key购买 nike

所以我在市场上有一个应用程序,并且通过更新我想向数据库中添加一些列。到目前为止没有问题。但是我想检测正在使用的数据库是否缺少这些列,如果是这样的话就添加它们。我需要动态地完成此操作,而不仅仅是在更新到新版本之后,因为应用程序应该仍然能够导入旧数据库。通常我可以使用 PRAGMA查询,但我不确定如何使用 Android 执行此操作。我不能使用 execSQL,因为它是一个查询,而且我不知道如何将 PRAGMA 与 query() 函数一起使用。

当然,我可以只捕获异常然后添加列,或者在我开始使用它之前总是将列添加到每个表,但这不是一个很好的解决方案。

干杯,

最佳答案

杂注有效。作为示例,我刚刚在我的一个 Android 应用程序数据库上尝试过它。

sqlite> pragma table_info (userCommand);

cid name type notnull dflt_value pk
0 id INTEGER 0 1
1 description TEXT 0 0
2 message TEXT 0 0

我们可以看到指定表中有三个字段。 ID、描述和消息。

所以在你的应用中,使用类似的东西:

Cursor c = null;
c = RawQuery ("pragma table_info (userCommand)",null);
// if c has records and is not null then iterate through the records in search of your table name.

请原谅格式不佳。

关于android - 检测表是否包含 Android/sqlite 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2675388/

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