【问题标题】:How to get unique column indicator in sqlite如何在 sqlite 中获取唯一的列指示符
【发布时间】:2020-09-16 13:17:01
【问题描述】:

由于某种原因,我无法在我的退货清单中包含“独特”列。有什么建议吗?

此查询有效:

SELECT 
        m.tbl_name as table_name,
        il.name as key_name,
        ii.name as column_name,
        case il.origin when 'pk' then 1 else 0 END as is_primary,
        il.partial,
        il.seq as seq_in_index
    FROM sqlite_master AS m,
        pragma_index_list(m.name) AS il,
        pragma_index_info(il.name) AS ii
    WHERE 
        m.type = 'table'

但此查询失败

SELECT 
        m.tbl_name as table_name,
        il.name as key_name,
        ii.name as column_name,
        case il.origin when 'pk' then 1 else 0 END as is_primary,
        case il.unique when 1 then 1 else 0 END as is_unique,
        il.partial,
        il.seq as seq_in_index
    FROM sqlite_master AS m,
        pragma_index_list(m.name) AS il,
        pragma_index_info(il.name) AS ii
    WHERE 
        m.type = 'table'

【问题讨论】:

    标签: sqlite database-indexes


    【解决方案1】:

    对于 SQLite(和其他数据库)uniquekeyword(保留字),因此您必须将其括在反引号或方括号或双引号内:

    case il.[unique] when 1 then 1 else 0 END as is_unique 
    

    但你也可以写:

    il.[unique] as is_unique 
    

    【讨论】:

    • 在这个上差点把我的额头擦伤。 ;) 感谢您的善意提醒...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-26
    • 2013-04-29
    • 2022-01-01
    • 1970-01-01
    • 2014-05-05
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多