【问题标题】:Sqlite : unique constraint if not emptySqlite:如果不为空,则为唯一约束
【发布时间】:2017-04-04 12:32:16
【问题描述】:

我想在 TEXT 列上创建一个仅影响非空单元格的唯一约束。 (每个单元格必须是唯一的当且仅当它包含一些字符)。

我试过了,但它引发了异常:

db.execSQL("CREATE TABLE tables (" +
        "table_id INTEGER PRIMARY KEY, " +
        "table_name TEXT, " +
        "table_number INTEGER, " +
        "table_alias TEXT, " +
        "UNIQUE(table_alias) WHERE table_alias != '' ON CONFLICT IGNORE);"

知道如何实现这一目标吗?

【问题讨论】:

    标签: sqlite indexing constraints unique


    【解决方案1】:

    在 UNIQUE 列中,NULL 值被认为是不同的。 (不要问为什么,这就是 SQL 的工作原理。)

    所以用 NULL 替换 emtry 字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      相关资源
      最近更新 更多