我想通过 SQL 查询找出索引是否是唯一的。我正在使用 SQLite 3。
我尝试了两种方法:
SELECT * FROM sqlite_master WHERE name = 'sqlite_autoindex_user_1'
这将返回有关索引的信息(“type”、“name”、“tbl_name”、“rootpage”和“sql”)。请注意,当 SQLite 自动创建索引时,sql 列为空。
PRAGMA index_info(sqlite_autoindex_user_1);
这将返回索引中的列(“seqno”、“cid”和“name”)。
还有其他建议吗?
Edit:上面的示例是针对自动生成的索引,但我的问题是关于一般索引的。例如,我可以使用“CREATE UNIQUE INDEX index1 ON access (user, date)”创建一个索引。似乎没有 SQL 命令会显示我的新索引是否是唯一的。
PRAGMA INDEX_LIST('table_name');
返回一个包含 3 列的表:
-
seq
索引的唯一数字 ID
-
name
指数名称
-
unique
唯一性标志(非零,如果UNIQUE
index.)
Edit
从 SQLite 3.16.0 开始,您还可以使用表值杂注函数,其优点是您可以JOIN
他们搜索特定的表和列。看@mike-scotty 的回答 https://stackoverflow.com/a/53629321/12048.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)