首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Derby -约束

Derby -约束
EN

Stack Overflow用户
提问于 2009-05-10 18:03:12
回答 1查看 6.2K关注 0票数 6

在Derby服务器中,如何使用模式的系统表中的信息创建select语句,以便检索每个表的约束名称?

EN

回答 1

Stack Overflow用户

发布于 2010-01-21 10:30:28

代码语言:javascript
运行
复制
SELECT sc.schemaname, co.constraintname, t.tablename, cg.descriptor, t2.tablename, cg2.descriptor, f.deleterule, f.updaterule
FROM sys.sysconstraints co
JOIN sys.sysschemas sc ON co.schemaid = sc.schemaid
JOIN sys.systables t ON co.tableid = t.tableid
JOIN sys.sysforeignkeys f ON co.constraintid = f.constraintid
JOIN sys.sysconglomerates cg ON f.conglomerateid = cg.conglomerateid
JOIN sys.sysconstraints co2 ON f.keyconstraintid = co2.constraintid
JOIN sys.systables t2 ON co2.tableid = t2.tableid
JOIN sys.syskeys k ON co2.constraintid = k.constraintid
JOIN sys.sysconglomerates cg2 ON k.conglomerateid = cg2.conglomerateid
WHERE co.type = 'F' 
    and sc.schemaname = current schema    

这两个描述符条目包含每个表的列号列表,如

BTREE(2,1)

其中数字对应于相应表的syscolumn表中的列号。

如果任何人在这个查询中有一个很好的方法来提取它,我想知道。我在一个单独的查询中获取一个表的所有列的列表,并在解析描述符以获得数字后从中提取名称。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/845766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档