【问题标题】:Caused by: android.database.sqlite.SQLiteException: near "Appliances": syntax error (code 1):引起:android.database.sqlite.SQLiteException:“Appliances”附近:语法错误(代码1):
【发布时间】:2019-03-17 15:54:38
【问题描述】:

我在 SQLITE 中有 5 个表,当我尝试编译时显示“语法错误”但我在代码中找不到任何语法错误。

这是我的代码

override fun onCreate(db: SQLiteDatabase?) {
        var ClothTable = "CREATE TABLE $Cloth (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description TEXT ,IMAGE BLOB)"
        var DairyTable = "CREATE TABLE $Dairy (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description TEXT ,IMAGE BLOB)"
        var EATable = "CREATE TABLE $ElectricalAppliances (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description TEXT ,IMAGE BLOB)"
        var FoodTable = "CREATE TABLE $Food (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description TEXT ,IMAGE BLOB)"
        var VegetableTable = "CREATE TABLE $vegetable (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description TEXT ,IMAGE BLOB)"

        db?.execSQL(ClothTable)
        db?.execSQL(DairyTable)
        db?.execSQL(EATable)
        db?.execSQL(FoodTable)
        db?.execSQL(VegetableTable)


    }

错误是:

Caused by: android.database.sqlite.SQLiteException: near "Appliances": syntax error (code 1): , while compiling: CREATE TABLE Electrical Appliances (_id INTEGER PRIMARY KEY AUTOINCREMENT,Description STRING ,IMAGE BLOB)

【问题讨论】:

  • 表名中不能有空格

标签: android sqlite kotlin syntax


【解决方案1】:

我猜你已经像这样声明了变量 ElectricalAppliances:

val ElectricalAppliances = "Electrical Appliances"

作为表名,但不允许有空格。
改成:

val ElectricalAppliances = "[Electrical Appliances]"

名称必须用方括号 [ ] 或反引号 `(ascii 代码 096)括起来。

【讨论】:

  • 非常感谢兄弟,它的工作原理我以前不知道 sqlite 不接受空格
  • 表名、列、索引等没有空格
  • 如果这个答案解决了你的问题,考虑接受它。
猜你喜欢
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多