我正在尝试像这样创建SQLite数据库:
private static final String UID = "_id";
private static final String NAME = "Name";
private static final String TYPE = "Type";
private static final String UNITS = "Units";
private static final String CURRENCY = "Currency";
private static final String PRICE = "Price";
private static final String ADD = "Default";
private static final String WEATHER = "Depends";
private static final String CREATE_TABLE =
" CREATE TABLE "+TABLE_NAME+
" ( " +UID+" INTEGER PRIMARY KEY AUTOINCREMENT, "+
NAME+ " VARCHAR (255), "+
TYPE+ " VARCHAR (255), "+
UNITS+ " VARCHAR (255), "+
CURRENCY+ " VARCHAR (255), "+
PRICE+ " VARCHAR (255), "+
ADD+ " VARCHAR (255), "+
WEATHER+ " VARCHAR (255) ); ";
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_TABLE);
}
获取此错误日志:
Caused by: android.database.sqlite.SQLiteException: near "Default":
syntax error (code 1): , while compiling: CREATE TABLE Meters ( _id INTEGER
PRIMARY KEY AUTOINCREMENT, Name VARCHAR (255), Type VARCHAR (255), Units
VARCHAR (255), Currency VARCHAR (255), Price VARCHAR (255), Default VARCHAR
(255), Depends VARCHAR (255) );
我真的看不出问题:-/欢迎任何可能出错的建议,谢谢大家
DEFAULT
是SQL中的一个关键字。将变量中的列名ADD
更改为其他名称。
Default
是SQLite的关键字。您可能不应该将其用作名称。如果要使用关键字作为名称,则需要将其括起来。
以下是您可能想要检查的一些SQLite文档: https://www.sqlite.org/lang_keywords.html
更改 的值ADD
它不能Default
,因为它是 SQL 中的保留字