2

首先,我创建了一个数据库表,Android SQLite DB如下所示:

private static final String CONTENT_DB_CREATE = "CREATE TABLE "
        + CONTENT_DB_NAME + "( " + CONTENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        CONTENT_TITLE   + " TEXT, " +
        CONTENT_FULLTEXT    + " TEXT , " +
        CONTENT_STATE   + " TEXT , " +
        CONTENT_NEW + " TEXT, " +
        CONTENT_HEADER  + " TEXT , " +
        CONTENT_COLOR   + " TEXT , " +
        CONTENT_NEXT    + " TEXT , " +
        CONTENT_PREVIOUS + " TEXT );";

然后我改为:

private static final String CONTENT_DB_CREATE = "CREATE TABLE "
        + CONTENT_DB_NAME + "( " + CONTENT_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
        CONTENT_TITLE   + " TEXT, " +
        CONTENT_FULLTEXT    + " TEXT , " +
        CONTENT_STATE   + " INTEGER , " +
        CONTENT_NEW + " INTEGER, " +
        CONTENT_HEADER  + " TEXT , " +
        CONTENT_COLOR   + " INTEGER , " +
        CONTENT_NEXT    + " TEXT , " +
        CONTENT_PREVIOUS + " TEXT );";

现在如何确定数据类型已更改!

4

2 回答 2

3

您可以使用此查询来获取定义表的当前 SQL 语句:

"SELECT sql FROM sqlite_master " +
    " WHERE type = 'table' AND tbl_name = '" + CONTENT_DB_NAME + "'"

sqlite_master是一个隐藏的表,包含整个数据库的模式。

了解列类型可能无关紧要,因为 SQLite 使用"type affinity"

于 2013-03-02T18:45:28.517 回答
0

有一些实用程序可以查看您的数据库。您可以使用文件资源管理器获取
数据库特定应用程序的数据库位于 /data/data/[packagename]/databases

包名是您在清单中定义的包,例如 /data/data/org.vimtips.supacount/databases/counts.db。

您可以使用 adb shell 查看它并输入 sqlite3 /data/data/org.vimtips.supacount/databases/counts.db

或者你可以从设备中提取它以使用第三方实用程序查看它,使用 adb pull /data/data/org.vimtips.supacount/databases/counts.db 之类的命令

于 2013-03-02T18:46:16.410 回答