它不能写出超过3个表

时间:2014-08-21 09:12:59

标签: android sql database sqlite

我为我的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。 如果我删除注释,它会写table1,table2,table3 ......而没有table4 ......为什么? 它似乎不能写超过3个表。可能吗?

1 个答案:

答案 0 :(得分:4)

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