cubrid_schema

설명

cubrid_schema 함수는 데이터베이스의 원하는 스키마 정보를 얻어온다. 만약 특정 클래스와 관련된 정보를 얻기 위해서는 class_name, 특정 속성과 관련된 정보(현재 CUBRID_SCH_ATTR_PRIVILEGE에서만 사용)를 얻기 위해서는 attr_name을 지정해야 한다.

구문

array cubrid_schema (resource $conn_identifier, int $schema_type[, string $class_name[, string $attr_name]])

리턴 값

cubrid_schema의 결과는 2차원 배열형( 열(연관배열) * 행(수치배열) )으로 반환되며, 스키마의 종류와 각 스키마의 종류에 따라 반환되는 결과 배열의 열 구성은 다음과 같다.

스키마

컬럼 번호

컬럼 이름

CUBRID_SCH_CLASS

1

NAME

0 : System class
1 : vclass
2 : class

2

TYPE

 

CUBRID_SCH_VCLASS

1

NAME

1 : vclass

2

TYPE

 

CUBRID_SCH_QUERY_SPEC

1

QUERY_SPEC

 

CUBRID_SCH_ATTRIBUTE

1

ATTR_NAME

 

2

DOMAIN

 

3

SCALE

 

4

PRECISION

 

5

INDEXED

1 : indexed

6

NON NULL

1 : non null

7

SHARED

1 : shared

8

UNIQUE

1 : unique

9

DEFAULT

 

10

ATTR_ORDER

1 : base

11

CLASS_NAME

 

12

SOURCE_CLASS

 

CUBRID_SCH_CLASS_ATTRIBUTE

1

ATTR_NAME

 

2

DOMAIN

 

3

SCALE

 

4

PRECISION

 

5

INDEXED

1 : indexed

6

NON NULL

1 : non null

7

SHARED

1 : shared

8

UNIQUE

1 : unique

9

DEFAULT

 

10

ATTR_ORDER

1 : base

11

CLASS_NAME

 

12

SOURCE_CLASS

 

CUBRID_SCH_METHOD

1

NAME

 

2

RET_DOMAIN

 

3

ARG_DOMAIN

 

CUBRID_SCH_METHOD_FILE

1

METHOD_FILE

 

CUBRID_SCH_SUPERCLASS

1

CLASS_NAME

 

2

TYPE

 

CUBRID_SCH_SUBCLASS

1

CLASS_NAME

 

2

TYPE

 

CUBRID_SCH_CONSTRAINT

1

TYPE

0 : unique
1 : index

2

NAME

 

3

ATTR_NAME

 

CUBRID_SCH_TRIGGER

1

NAME

 

2

STATUS

 

3

EVENT

 

4

TARGET_CLASS

 

5

TARGET_ATTR

 

6

ACTION_TIME

 

7

ACTION

 

8

PRIORITY

 

9

CONDITION_TIME

 

10

CONDITION

 

CUBRID_SCH_CLASS_PRIVILEGE

1

CLASS_NAME

 

2

PREVILEGE

 

3

GRANTABLE

 

CUBRID_SCH_ATTR_PRIVILEGE

1

ATTR_NAME

 

2

PREVILEGE

 

3

GRANTABLE

 

CUBRID_SCH_PRIMARY_KEY

1

ATTR_NAME

 

2

KEY_SEQ

1 : base

3

KEY_NAME

 

4

KEY_NAME

 

CUBRID_SCH_IMPORTED_KEYS

1

PKTABLE_NAME

 

2

PKCOLUMN_NAME

 

3

FKTABLE_NAME

 

4

FKCOLUMN_NAME

 

5

KEY_SEQ

 

6

UPDATE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

7

DELETE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

8

FK_NAME

 

9

PK_NAME

 

CUBRID_SCH_EXPORTED_KEYS

1

PKTABLE_NAME

 

2

PKCOLUMN_NAME

 

3

FKTABLE_NAME

 

4

FKCOLUMN_NAME

 

5

KEY_SEQ

 

6

UPDATE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

7

DELETE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

8

FK_NAME

 

9

PK_NAME

 

CUBRID_SCH_CROSS_REFERENCE

1

PKTABLE_NAME

 

2

PKCOLUMN_NAME

 

3

FKTABLE_NAME

 

4

FKCOLUMN_NAME

 

5

KEY_SEQ

 

6

UPDATE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

7

DELETE_ACTION

0 : cascade
1 : restrict
2 : no action
3 : set null

8

FK_NAME

 

9

PK_NAME

 

예제

<?php

$conn = cubrid_connect("localhost", 33000, "demodb");

 

printf("\n--- Primary Key ---\n");

$pk = cubrid_schema($conn, CUBRID_SCH_PRIMARY_KEY, "game");

var_dump($pk);

 

printf("\n--- Foreign Keys ---\n");

$fk = cubrid_schema($conn, CUBRID_SCH_IMPORTED_KEYS, "game");

var_dump($fk);

 

printf("\n--- Column Attribute ---\n");

$attr = cubrid_schema($conn, CUBRID_SCH_ATTRIBUTE, "stadium", "area");

var_dump($attr);

 

cubrid_disconnect($conn);

?>

The above example will output:

 

 

--- Primary Key ---

array(3) {

  [0]=>

  array(4) {

    ["CLASS_NAME"]=>

    string(4) "game"

    ["ATTR_NAME"]=>

    string(12) "athlete_code"

    ["KEY_SEQ"]=>

    string(1) "3"

    ["KEY_NAME"]=>

    string(41) "pk_game_host_year_event_code_athlete_code"

  }

  [1]=>

  array(4) {

    ["CLASS_NAME"]=>

    string(4) "game"

    ["ATTR_NAME"]=>

    string(10) "event_code"

    ["KEY_SEQ"]=>

    string(1) "2"

    ["KEY_NAME"]=>

    string(41) "pk_game_host_year_event_code_athlete_code"

  }

  [2]=>

  array(4) {

    ["CLASS_NAME"]=>

    string(4) "game"

    ["ATTR_NAME"]=>

    string(9) "host_year"

    ["KEY_SEQ"]=>

    string(1) "1"

    ["KEY_NAME"]=>

    string(41) "pk_game_host_year_event_code_athlete_code"

  }

}

 

--- Foreign Keys ---

array(2) {

  [0]=>

  array(9) {

    ["PKTABLE_NAME"]=>

    string(7) "athlete"

    ["PKCOLUMN_NAME"]=>

    string(4) "code"

    ["FKTABLE_NAME"]=>

    string(4) "game"

    ["FKCOLUMN_NAME"]=>

    string(12) "athlete_code"

    ["KEY_SEQ"]=>

    string(1) "1"

    ["UPDATE_RULE"]=>

    string(1) "1"

    ["DELETE_RULE"]=>

    string(1) "1"

    ["FK_NAME"]=>

    string(20) "fk_game_athlete_code"

    ["PK_NAME"]=>

    string(15) "pk_athlete_code"

  }

  [1]=>

  array(9) {

    ["PKTABLE_NAME"]=>

    string(5) "event"

    ["PKCOLUMN_NAME"]=>

    string(4) "code"

    ["FKTABLE_NAME"]=>

    string(4) "game"

    ["FKCOLUMN_NAME"]=>

    string(10) "event_code"

    ["KEY_SEQ"]=>

    string(1) "1"

    ["UPDATE_RULE"]=>

    string(1) "1"

    ["DELETE_RULE"]=>

    string(1) "1"

    ["FK_NAME"]=>

    string(18) "fk_game_event_code"

    ["PK_NAME"]=>

    string(13) "pk_event_code"

  }

}

 

--- Column Attribute ---

array(1) {

  [0]=>

  array(13) {

    ["ATTR_NAME"]=>

    string(4) "area"

    ["DOMAIN"]=>

    string(1) "7"

    ["SCALE"]=>

    string(1) "2"

    ["PRECISION"]=>

    string(2) "10"

    ["INDEXED"]=>

    string(1) "0"

    ["NON_NULL"]=>

    string(1) "0"

    ["SHARED"]=>

    string(1) "0"

    ["UNIQUE"]=>

    string(1) "0"

    ["DEFAULT"]=>

    NULL

    ["ATTR_ORDER"]=>

    string(1) "4"

    ["CLASS_NAME"]=>

    string(7) "stadium"

    ["SOURCE_CLASS"]=>

    string(7) "stadium"

    ["IS_KEY"]=>

    string(1) "0"

  }