Db2 获取主键列表和相应的表名
在db2中,如何获得特定db模式的主键列表和相应的表名 我找到了一些查询,可以从如下表中获取主键:Db2 获取主键列表和相应的表名,db2,Db2,在db2中,如何获得特定db模式的主键列表和相应的表名 我找到了一些查询,可以从如下表中获取主键: SELECT sc.name FROM SYSIBM.SYSCOLUMNS SC WHERE SC.TBNAME = 'REGISTRATION' AND sc.identity ='N' AND sc.tbcreator='schemaname' AND sc.keyseq=1 我是否可以修改它以获得模式中完整的主键、列名和表名?您运行DB2的平台是什么?您是在寻找每个表中的列列表,还是在
SELECT sc.name
FROM SYSIBM.SYSCOLUMNS SC
WHERE SC.TBNAME = 'REGISTRATION'
AND sc.identity ='N'
AND sc.tbcreator='schemaname'
AND sc.keyseq=1
我是否可以修改它以获得模式中完整的主键、列名和表名?您运行DB2的平台是什么?您是在寻找每个表中的列列表,还是在每个表的主键中使用的列列表?(差别很大)我需要表名、主键名和列名。假设
sc.identity
是一个布尔(本质上)列,为什么要从列表中删除autogen/identity列?表中的大多数主键都是精确的列类型。您是否在寻找自然(外部id)主键,而不是代理(代码,通常是数字)键?我将接受这个答案。剩下的一个问题是,我们不能在DB2中获得主键约束名称和列名吗?哪个平台?建议有另一个包含此信息的表,但模式/表名与您的问题所提到的不同,因此平台可能不同。@Clockwork Muse:谢谢您的博客。我对DB2
相当陌生,我不知道哪个平台?
对于外键约束,您可以查看syscat.referencesieries、LUW、z/OS。。。。基本上,您在什么操作系统/机器上运行它?系统的所有部署都没有完全相同的功能,因此了解这些信息非常重要。
SELECT
tabschema, tabname, colname
FROM
syscat.columns
WHERE
keyseq IS NOT NULL AND
keyseq > 0
ORDER BY
tabschema, tabname, keyseq