我为我的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个表。可能吗?
答案 0 :(得分:4)
avg
是SQLite中的保留字,因此您最好重命名最后一个表。