【问题标题】:How to set default value for a INTEGER field of SQLiteDatabase in Anko如何在 Anko 中为 SQLiteDatabase 的 INTEGER 字段设置默认值
【发布时间】:2018-05-11 00:57:28
【问题描述】:

我知道 SQLiteDatabase 没有布尔字段,所以我需要为 DBSettingTable.Status 设置一个 INTEGER 字段。 我希望为 DBSettingTable.Status 设置一个默认值 0,但是下面的代码是错误的,我该如何解决呢?谢谢!

import android.content.Context
import android.database.sqlite.SQLiteDatabase
import org.jetbrains.anko.db.*
import ui.UIApp

override fun onCreate(db: SQLiteDatabase) {
          db.createTable( DBSettingTable.TableNAME , true,
                DBSettingTable._ID to INTEGER + PRIMARY_KEY+ AUTOINCREMENT,                
                DBSettingTable.Status to INTEGER DEFAULT 0  
        )
}

【问题讨论】:

  • 代码有什么问题?
  • DBSettingTable.Status 到 INTEGER DEFAULT 0 不正确
  • 未解决的参考:默认

标签: android sqlite kotlin anko


【解决方案1】:

DEFAULT 使用不正确。

它有签名fun DEFAULT(value: String): SqlTypeModifier

像这样使用它:

override fun onCreate(db: SQLiteDatabase) {
    db.createTable( DBSettingTable.TableNAME , true,
            DBSettingTable._ID to INTEGER + PRIMARY_KEY+ AUTOINCREMENT,                
            DBSettingTable.Status to INTEGER + DEFAULT("0")
    )
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 2023-03-30
    • 2019-12-24
    • 2013-12-29
    • 2022-01-21
    • 2023-02-24
    相关资源
    最近更新 更多