1 。db2 中如何查看某个序列被哪里表使用??
2 :如何查看某个序列的使用情况 ? 例如序列当前值,最大值 ,目的是评估某个序列别使用到最大值后,会出问题
3: 查看某个表中的自增列identity always 和defaults 的最大值和当前值 ?
收起语句一:
SELECT SEQSCHEMA,
SEQNAME,
SEQID,
SEQTYPE,
CYCLE,
START,
NEXTCACHEFIRSTVALUE,
MAXVALUE,
DEC((FLOAT(NEXTCACHEFIRSTVALUE*100.0)/FLOAT(MAXVALUE)),5,2) AS PCT_USED,
case when DATATYPEID=16 then 9999999999999999999999999999999 when DATATYPEID=20 then 9223372036854775807 when DATATYPEID=24 then 2147483647 when DATATYPEID=28 then 32767 else null end as EXTENMAXVALUE
FROM SYSCAT.SEQUENCES
WHERE SEQSCHEMA='${SEQSCHEMA}'
AND SEQNAME='${SEQNAME}'
AND OWNERTYPE='U'
WITH UR
这条语句可以查DB2数据库中指定的序列信息,如果SEQTYPE为"S" 那就是序列,如果为 “I”那就是自增列,可以通过以下语句查到是哪个表、哪一例的:
SELECT
co.TABSCHEMA ,
co.TABNAME,
co.COLNAME
FROM SYSCAT.SEQUENCES as sq ,SYSCAT.COLIDENTATTRIBUTES as co
WHERE SEQSCHEMA='${SEQSCHEMA}' AND SEQNAME='${SEQNAME}' AND sq.SEQID=co.SEQID
WITH UR