cubrid_schema 함수는 데이터베이스의 원하는 스키마 정보를 얻어온다. 만약 특정 클래스와 관련된 정보를 얻기 위해서는 class_name, 특정 속성과 관련된 정보(현재 CUBRID_SCH_ATTR_PRIVILEGE에서만 사용)를 얻기 위해서는 attr_name을 지정해 주어야 한다.
mixed cubrid_schema (int conn_handle, 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 |
base : 1 |
|
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 |
base : 1 |
|
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 |
ATT_NAME |
|
2 |
PREVILEGE |
||
3 |
GRANTABLE |
$attrs = cubrid_schema ($con, CUBRID_SCH_ATTRIBUTE, "person");
while (list($key, $value) = each($attrs)) {
echo $value["NAME"];
echo $value["DOMAIN"];
}