德比 - 限制
在 Derby 服务器中,如何使用模式的系统表中的信息创建 select 语句以检索每个表的约束名称?
In the Derby server, how can you use the information in the system tables of the schema to create a select statement in order to retrieve the constraint names for each table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
相关手册是Derby 参考手册。 有许多可用版本:10.13 是 2017 年 4 月的最新版本,但 2009 年 5 月是 10.3。
原始答案
由于 Derby 的最新版本要求系统目录表是以
sys.
为前缀(10.13 由 kiwicomb123 在 comment),您也可以修改查询以使用显式 JOIN 表示法,并使用:您可以添加额外的columns — 例如,
c.type
获取约束类型。The relevant manual is the Derby Reference Manual. There are many versions available: 10.13 was current in April 2017, but it was 10.3 in May 2009.
Original answer
Since sufficiently recent versions of Derby require that the system catalogue tables are prefixed by
sys.
(10.13 is quoted by kiwicomb123 in a comment), you can revise the query to use the explicit JOIN notation too, and use:You can add extra columns — for example,
c.type
to get the constraint type.这两个描述符条目包含每个表的列号列表,例如
BTREE(2,1)
,其中数字对应于相应表的 syscolumns 表中的列号。
如果有人有一种优雅的方法可以在此查询中提取此内容,我想知道。 我在单独的查询中获取表的所有列的列表,并在解析描述符以获取数字后从中提取名称。
the two descriptor entries contain a list of column numbers for each table, like
BTREE(2,1)
where the numbers correspond to the column numbers in the syscolumns table for the corresponding table.
If anyone has an elegant way of extracting this in this query, I would like to know. I am getting a list of all the columns for a table in a separate query and extracting the names from that after parsing the descriptors to get the numbers.