Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 它没有';不要写超过3个表_Android_Sql_Database_Sqlite - Fatal编程技术网

Android 它没有';不要写超过3个表

Android 它没有';不要写超过3个表,android,sql,database,sqlite,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_VERSI

我为我的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(表2),它将写入表1、表3和表4。 如果我删除注释,它将写入表1、表2、表3。。。没有表4。。。为什么?
似乎它最多只能写3个表。可能吗

avg
在SQLite中是一个保留字,所以最好重命名上一个表

avg
在SQLite中是一个保留字,所以最好重命名上一个表

完成。。。没有任何更改,它也不能更改,因为正如我所说的,如果我对以前的任何表write…FWIW进行注释,我可以编写table4,使用函数名作为表名不是语法错误。函数由它们的
()
参数标识。完成。。。没有任何更改,它也不能更改,因为正如我所说的,如果我对以前的任何表write…FWIW进行注释,我可以编写table4,使用函数名作为表名不是语法错误。函数由它们的
()
参数标识。如何确定哪些表是“已写”的,哪些表不是?我使用Android的SQLite Editor应用程序。将列
文本
更改为表3中的另一个名称。该应用程序可能无法工作。检查代码中的表。完成。。。没有任何变化,正如我在问题中所说的,如果我对以前的任何db.execSQL(tableX)进行注释,我可以编写table4;如何确定哪些表是“编写”的,哪些表不是?我使用Android的SQLite Editor应用程序。将列
文本
更改为表3中的另一个名称。该应用程序可能无法工作。检查代码中的表。完成。。。没有任何变化,正如我在问题中所说的,如果我对以前的任何db.execSQL(tableX)进行注释,我可以编写table4;