HSQLDB 的唯一索引查询

Posted

技术标签:

【中文标题】HSQLDB 的唯一索引查询【英文标题】:Unique Indexes query for HSQLDB 【发布时间】:2021-01-21 10:11:06 【问题描述】:

我有一个从 mysql 数据库表中选择唯一索引的查询:

SHOW indexes from [tablename] WHERE non_unique = FALSE and key_name <> "PRIMARY"

我希望创建适用于 HSQLDB 的等效查询

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

这在information_schema.system_indexinfo 中可用

select *
from information_schema.system_indexinfo
where non_unique = false
  and table_name = 'MY_TABLE'
  and table_schem = 'PUBLIC'
  and not exists (select * -- exclude PK indexes
                  from information_schema.system_primarykeys pk
                  where ii.table_cat = pk.table_cat
                    and ii.table_schem = pk.table_schem
                    and ii.index_name = pk.pk_name)

【讨论】:

谢谢@a_horse_with_no_name :) 但是这个查询中的表名在哪里? system_indexinfo.table_name 包含 - 惊喜 - 表名 谢谢,在 HSQLDB 中定位对我来说有点困难,请您调整您的查询以加入 system_indexinfo.table_name 不确定您的要求,因为select *,该列已包含在结果中 所以我只需要添加一个where子句?像“and table_name = [tablename]”?

以上是关于HSQLDB 的唯一索引查询的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB:奇怪的“唯一约束或索引违规”,从CSV读取数据

HSQLDB 索引和多列约束

唯一索引和普通索引

MongoDB中唯一索引的优势

创建唯一索引的 sql语句

普通索引和唯一索引,应该怎么选择?