Android数据库表语法错误

Android数据库表语法错误,android,Android,我正在尝试使用存储在局部变量中的字符串名称创建数据库,语法如下: mDb.execSQL("CREATE TABLE " + FLASH_TABLE + " (" + KEY_CARD_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_QUESTION + "TEXT NOT NULL," + KEY_ANSWER + "TEXT NOT NULL);"); mDb.execS

我正在尝试使用存储在局部变量中的字符串名称创建数据库,语法如下:

mDb.execSQL("CREATE TABLE " + FLASH_TABLE + " (" + KEY_CARD_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_QUESTION + "TEXT NOT NULL," + KEY_ANSWER + "TEXT NOT NULL);"); mDb.execSQL(“创建表”+闪存表+”(“+密钥卡\u ROWID +“整数主键自动递增,”+主键问题 +“文本不为空,”+键+答案+文本不为空);”; 这会在日志cat中产生以下错误:

05-14 04:40:05.892: ERROR/Database(372): Failure 1 (near "15": syntax error) on 0x272140 when preparing 'CREATE TABLE 15 (_id INTEGER PRIMARY KEY AUTOINCREMENT, questionTEXT NOT NULL,answerTEXT NOT NULL);'. 05-14 04:40:05.892:错误/数据库(372):准备“创建表15(_idinteger主键自动递增,questionTEXT不为NULL,answerTEXT不为NULL)”时,0x272140出现故障1(接近“15”:语法错误)。 FLASH_表是值为“15”的局部变量 关键问题和关键答案也是局部变量


我在网上查看了所有我能找到的例子,但我找不到语法错误的原因。非常感谢您提供的任何建议。

您不能用以数字开头的字符串创建表名(或字段名),除非您对其进行双引号引用。但即使在技术上可行,也不被认为是最佳实践。如果您这样做了,那么每次在查询中使用表名时,您还必须对其进行双引号引用,这样您很快就会发现这是一个非常麻烦的问题