如何检查sqlite db中是否更改了字段的数据类型

时间:2013-03-02 18:37:24

标签: android android-sqlite

首先,我在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 );";

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

2 个答案:

答案 0 :(得分:3)

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

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

sqlite_master是一个隐藏的表,用于保存整个数据库的模式。

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

答案 1 :(得分:0)

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

packagename是您在清单中定义的包,例如/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等命令