我为我的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/