我为我的Android应用程序创建了这个类:

public class Database extends SQLiteOpenHelper{

    private static final String DB_NAME = "db";
    private static final int DB_VERSION = 1;

    public Database(Context context) {
        super(context,DB_NAME, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {

        String table1="CREATE TABLE users(";
        table1+="_id TEXT PRIMARY KEY,";
        table1+="city TEXT NOT NULL,";
        table1+="name TEXT NOT NULL,";
        table1+="info TEXT);";

        String table2 = "CREATE TABLE things(";
        table2+="id TEXT PRIMARY KEY);";

        String table3 = "CREATE TABLE rec(";
        table3+="id TEXT PRIMARY KEY,";
        table3+="text TEXT NOT NULL,";
        table3+="rate INTEGER NOT NULL);";

        String table4 = "CREATE TABLE avg(";
        table4+="mct TEXT PRIMARY KEY,";
        table4+="rec INTEGER NOT NULL,";
        table4+="avgrate FLOAT NOT NULL);";

        db.execSQL(table1);
        db.execSQL(table2);
        db.execSQL(table3);
        db.execSQL(table4);
    }
}

它不会将table4写入本地sqlite数据库。如果我向以前的任何db.execsql(tablex)添加注释,它都可以工作。
例如,如果我注释db.execsql(table2),它将写入table1、table3和table4。
如果我删除注释,它将写入表1、表2、表3…没有桌子4…为什么?
它似乎不能写超过3张表。有可能吗?

最佳答案

avg是sqlite中的保留字,因此最好重命名最后一个表。

关于android - 它写的表不超过3个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25422456/

10-10 04:50