gpt4 book ai didi

sql - 如何在 MonetDB 中发现给定索引或键的列

转载 作者:行者123 更新时间:2023-12-04 16:46:51 28 4
gpt4 key购买 nike

MonetDB 似乎支持相当全面的一组 系统目录 View 为了发现数据库的模式结构。不幸的是,我似乎找不到可以获取 的 SQL 查询。给定键或索引的列集 .以下是 Tables 表报告的系统表/ View :

模式
类型
职能
参数
序列
依赖
连接
_tables
_列
key
idxs
触发器
对象
table

db_user_info
用户
用户角色
授权
特权
查询历史
通话记录
查询日志
系统功能

我尝试了依赖项,但 ID 似乎不匹配。顺便说一句,我确实尝试查看源代码,但我还没有找到创建和维护系统 View 的位置。

最佳答案

两年半后,因为我对这个问题很感兴趣:您确实可以使用名称不佳的“对象”表找到给定键的列。

例如,考虑下表

CREATE TABLE indextest (a INT, b INT);
ALTER TABLE indextest ADD CONSTRAINT indextest_pk PRIMARY KEY (a);
ALTER TABLE indextest ADD CONSTRAINT indextest_uq UNIQUE (a, b);

现在让我们找出哪些列属于 indextest_uq :
SELECT idxs.id AS index_id, columns.id AS column_id, tables.name AS table_name, columns.name AS column_name, columns.type AS column_type 
FROM idxs JOIN objects ON idxs.id=objects.id JOIN tables ON idxs.table_id=tables.id JOIN columns ON idxs.table_id=columns.table_id AND objects.name=columns.name
WHERE idxs.name='indextest_uq';

此查询的结果如下所示:
+----------+-----------+------------+-------------+-------------+
| index_id | column_id | table_name | column_name | column_type |
+==========+===========+============+=============+=============+
| 6446 | 6438 | indextest | a | int |
| 6446 | 6439 | indextest | b | int |
+----------+-----------+------------+-------------+-------------+

显然,更多信息来自 columnstables可以通过扩展 SELECT 来包含表查询的一部分。

关于sql - 如何在 MonetDB 中发现给定索引或键的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860452/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com