Db2 获取主键列表和相应的表名

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的平台是什么?您是在寻找每个表中的列列表,还是在

在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的平台是什么?您是在寻找每个表中的列列表,还是在每个表的主键中使用的列列表?(差别很大)我需要表名、主键名和列名。假设
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