我知道这可能是一个简单的语法错误,但是我对SQLite还是陌生的
已经搜寻了这个简单的答案,但我做不到。我知道可以像以前一样在创建表时使用字符串常量,但是在设置默认文本值时它对我不起作用。请帮助!

public static final String USER_TABLE = "USER_TABLE";

   //works fine here!
   db.execSQL("CREATE TABLE " + USER_TABLE+
            "(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
            + FFDBSchema.Colz.MODE_ID_COL + "TEXT DEFAULT NULL,"
            //doesn't work here!
            + FFDBSchema.Colz.TABLE_ID_COL + "TEXT DEFAULT "  +
            USER_TABLE+","
            + FFDBSchema.Colz.ANOTHER_TABLE+ "TEXT,"  +


字符串常量在其他情况下也可以工作,但是是否仅仅是因为我不能使用字符串常量来设置默认列值?我必须插入吗?

最佳答案

您必须用单引号将字符串引起来,因此您需要执行以下操作:

public static final String USER_TABLE = "USER_TABLE";

db.execSQL("CREATE TABLE " + USER_TABLE+
        "(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
        + FFDBSchema.Colz.MODE_ID_COL + "TEXT DEFAULT NULL,"
        + FFDBSchema.Colz.TABLE_ID_COL + "TEXT DEFAULT '" +USER_TABLE+"',"
        + FFDBSchema.Colz.ANOTHER_TABLE+ "TEXT,"  +

07-28 12:33