Android数据库表语法错误

时间:2011-05-14 04:47:01

标签: android

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

mDb.execSQL("CREATE TABLE " + FLASH_TABLE + " (" + KEY_CARD_ROWID
                + " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_QUESTION
                + "TEXT NOT NULL," + KEY_ANSWER + "TEXT NOT NULL);");

在log 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);'.

FLASH_TABLE是值为“15”的局部变量 KEY_QUESTION和KEY_ANSWER也是局部变量

我已经查看了我能找到的每个在线示例,但我找不到语法错误的原因。我感谢您提出的任何建议。

1 个答案:

答案 0 :(得分:0)

除非您双引号,否则无法使用以数字开头的字符串创建表名(或字段名称)。但即使技术上可行,它也不被认为是最佳实践。如果这样做,每次在查询中使用时,您还必须对表名称进行双引号,这样您很快就会发现它比它的价值更麻烦。