android - 它不会写超过 3 个表

标签 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张表。是否可以?

最佳答案

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

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

相关文章:

sql - 为什么在 PostgreSQL 中执行 COPY 时序列没有更新?

java - 使用java快速插入数据库的方法

android - 无法在 Kotlin 中使用 Moshi 解析 Map<String, Double> - 意外的原始 double

java - 我在 Application 类中的全局变量、实例和单例是否应该是静态的?

java - 调用 int 静态类的非静态方法

php - MYSQL-在主表和子表中创建和存储主键

java - 获取 Tomcat 中数据库资源上 Activity/失效连接的计数

Android:如何使用 Intent 从 Activity 调用 Fragment 类

sql - 如何在一行中获得这两个结果?

php - mysql_result 在 php 中导致错误