DB_INDEX_KEY

데이터베이스 내에서 현재 사용자가 접근 권한을 가진 클래스에 대해 생성된 인덱스에 대한 키 정보를 보여준다.

속성명

데이터 타입

설명

index_name

VARCHAR(255)

인덱스명

class_name

VARCHAR(255)

인덱스가 속한 클래스명

key_attr_name

VARCHAR(255)

키를 구성하는 속성의 이름

key_order

INTEGER

키에서 속성이 위치한 순서. 0부터 시작함

asc_desc

VARCHAR(4)

속성 값의 순서가 내림차순이면 ‘DESC’, 그렇지 않으면 ‘ASC’

정의

CREATE VCLASS db_index_key (index_name, class_name, key_attr_name, key_order)
AS
SELECT k.index_of.index_name, k.index_of.class_of.class_name, k.key_attr_name, k.key_order
FROM _db_index_key k
WHERE (CURRENT_USER = 'DBA' OR
        {k.index_of.class_of.owner.name} subseteq (
                SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
                from db_user u, table(groups) as t(g)
                where u.name = CURRENT_USER ) OR
        {k.index_of.class_of} subseteq (
SELECT sum(set{au.class_of})
                FROM _db_auth au
                WHERE {au.grantee.name} subseteq (
                            SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
                            from db_user u, table(groups) as t(g)
                            where u.name = CURRENT_USER ) AND
                                    au.auth_type = 'SELECT'));

예제

다음 예제에서는 클래스의 인덱스 키 정보를 검색한다.

csql> select class_name, key_attr_name, index_name
csql> from db_index_key
csql> order by class_name, key_order;
csql> ;xrun
 
=== <Result of SELECT Command in Line 1> ===
 
  'athlete'             'code'                'pk_athlete_code'
  'city'                'city_name'           'pk_city_city_name'
  'db_serial'           'name'                'pk_db_serial_name'
  'db_user'             'name'                'i_db_user_name'
  'event'               'code'                'pk_event_code'
  'female_event'        'code'                'pk_event_code'
  'game'                'host_year'           'pk_game_host_year_event_code_athlete_code'
  'game'                'event_code'          'fk_game_event_code'
  'game'                'athlete_code'        'fk_game_athlete_code'
 …