设置 SQLite 列默认值时如何使用字符串常量
How To Use String Constant When Setting An SQLite Column Default Value
我知道这可能是一个简单的语法错误,但我是 SQLite 的新手而且我
已经到处寻找这个简单的答案,但我做不到。我知道在创建 table 时可以使用字符串常量,就像我以前做过的那样,但是在设置默认文本值时它对我不起作用。请帮忙!
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," +
我知道这可能是一个简单的语法错误,但我是 SQLite 的新手而且我 已经到处寻找这个简单的答案,但我做不到。我知道在创建 table 时可以使用字符串常量,就像我以前做过的那样,但是在设置默认文本值时它对我不起作用。请帮忙!
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," +