2014-05-08 9 views
0

在DB2它可以与下面的查询的帮助下完成的,但我不能找到一种方法HSQLDB做到这一点如何找到一个表的身份列在HSQLDB 1.8

SELECT COLNAME FROM SYSCAT.COLUMNS WHERE IDENTITY = 'Y' AND TABNAME='XXX'. 

下面是该表的列SYSTEM_COLUMNS,我可以看到,我不能确定这些将表明它是一个标识列

TYPE_SUB

TYPE_NAME

TABLE_SCHEM

TABLE_NAME

TABLE_CAT

SQL_DATETIME_SUB

SQL_DATA_TYPE

SOURCE_DATA_TYPE

SCOPE_TABLE

SCOPE_SCHEMA

SCOPE_CATLOG

备注

ORDINAL_POSITION

NUM_PREC_RADIX

NULLABLE

IS_NULLABLE

DECIMAL_DIGITS

DATA_TYPE

COLUMN_SIZE

COLUMN_NAME

COLUMN_DEF

CHAR_OCTET_LENGTH

BUFFER_LENGTH

+0

你是什么意思的身份专栏?组成主键的列? –

+0

我的意思是有数据库的标识符生成器,​​如序列,hilo,增量生成值列。 –

回答

0

这应做到:

select column_name, 
     generation_expression, 
     is_generated, 
     is_identity, 
     identity_generation, 
     identity_start, 
     identity_increment 
from information_schema.columns 
where table_name = 'XXX' 
    and table_schema = 'PUBLIC' 
    and is_identity = 'YES' 
+0

这不与hsqldb版本1.8,任何帮助呢? –

+0

@AlokChandna:你应该提到你正在使用完全过时的HSQLDB版本。系统视图被命名为'INFORMATION_SCHEMA.SYSTEM_COLUMNS'当时 –

+0

是的,我得到了,但它没有is_identity列 –

相关问题