互联网服务Db2

db2中的序列和自增列问题?

1 。db2 中如何查看某个序列被哪里表使用??2 :如何查看某个序列的使用情况 ? 例如序列当前值,最大值 ,目的是评估某个序列别使用到最大值后,会出问题3: 查看某个表中的自增列identity always 和defaults 的最大值和当前值 ?...显示全部

1 。db2 中如何查看某个序列被哪里表使用??

2 :如何查看某个序列的使用情况 ? 例如序列当前值,最大值 ,目的是评估某个序列别使用到最大值后,会出问题

3: 查看某个表中的自增列identity always 和defaults 的最大值和当前值 ?

收起
参与9

查看其它 3 个回答tongshuai的回答

tongshuaitongshuai数据库工程师北京新数科技有限公司

语句一:
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

互联网服务 · 2022-07-08
浏览929

回答者

tongshuai
数据库工程师北京新数科技有限公司

tongshuai 最近回答过的问题

回答状态

  • 发布时间:2022-07-08
  • 关注会员:5 人
  • 回答浏览:929
  • X社区推广