在我的安卓应用程序中,我正在扩展SQLiteOpenHelper以创建一个SQLite数据库。
下面是我的onCreate方法:
@Override
public void onCreate(SQLiteDatabase database) {
String sql = "CREATE TABLE ? ( " + SuggestionColumns._ID + " INTEGER PRIMARY KEY)";
String[] params = new String[]{SuggestionColumns.TABLE_NAME};
database.execSQL(sql, params);
但是LogCat提示我以下错误:
10-10 00:55:03.255: E/SQLiteLog(22311): (1) near "?": syntax error
10-10 00:59:20.605: W/SuggestionsAdapter(22311): Search suggestions query threw an exception.
10-10 00:59:20.605: W/SuggestionsAdapter(22311): android.database.sqlite.SQLiteException: near "?": syntax error (code 1): , while compiling: CREATE TABLE ? ( _id INTEGER PRIMARY KEY);
但是,如果我用字符串替换占位符并调用execSql(sql);,它就能工作。
所以问题是:是否禁止在CREATE语句中使用占位符?
发布于 2014-10-09 23:19:57
占位符仅限于文字,例如WHERE
子句中比较语句的右侧,或要插入到INSERT
语句中的值。占位符不能用于SQL语句的其他部分,例如表或列名。
https://stackoverflow.com/questions/26289369
复制相似问题