GBase 8S 主外键关系查询SQL及使用说明
在GBase 8S数据库中,可以通过系统表查询表之间的主外键关系。以下SQL语句能够查询指定表的外键约束信息,包括外键名称、关联的表和字段等。
SELECT
fc.constrname AS fk_name,
ft.tabname AS fk_table,
pt.tabname AS pk_table,
wm_concat(fcol.colname) AS fk_column,
wm_concat(pcol.colname) AS pk_column
FROM sysreferences r
JOIN sysconstraints fc ON fc.constrid = r.constrid
JOIN sysconstraints pc ON pc.constrid = r.primary
JOIN systables ft ON ft.tabid = fc.tabid
JOIN systables pt ON pt.tabid = r.ptabid
JOIN sysindexes fi ON fi.idxname = fc.idxname
JOIN sysindexes pi ON pi.idxname = pc.idxname
JOIN syscolumns fcol ON fcol.tabid = ft.tabid
JOIN syscolumns pcol ON pcol.tabid = pt.tabid
WHERE fc.constrtype = 'R'
AND ft.tabname = 'employee' --修改成实际表名,删除此条件就是全部系统相关的信息
AND (
(fi.part1 = fcol.colno AND pi.part1 = pcol.colno) OR
(fi.part2 = fcol.colno AND pi.part2 = pcol.colno) OR
(fi.part3 = fcol.colno AND pi.part3 = pcol.colno) OR
(fi.part4 = fcol.colno AND pi.part4 = pcol.colno) OR
(fi.part5 = fcol.colno AND pi.part5 = pcol.colno) OR
(fi.part6 = fcol.colno AND pi.part6 = pcol.colno) OR
(fi.part7 = fcol.colno AND pi.part7 = pcol.colno) OR
(fi.part8 = fcol.colno AND pi.part8 = pcol.colno)
)
GROUP BY
fc.constrname ,
ft.tabname ,
pt.tabname ;
使用说明
主要功能
查询指定表的外键约束信息
显示外键名称、外键表、主键表以及对应的字段
使用
wm_concat函数将复合外键的多个字段合并显示
参数说明
fk_name: 外键约束名称
fk_table: 外键表名(包含外键的表)
pk_table: 主键表名(被引用的表)
fk_column: 外键字段
pk_column: 主键字段
使用提示
将
ft.tabname = 'employee'中的employee替换为你要查询的实际表名如果删除该条件,将查询系统中所有的主外键关系
该SQL支持复合外键(多字段外键)的查询
注意事项
确保对系统表有适当的查询权限
热门帖子
- 12025-12-01浏览数:181955
- 22023-05-09浏览数:24006
- 42023-09-25浏览数:17257
- 52020-05-11浏览数:16389