Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.2.1 |  CUBRID 8.3.0 |  CUBRID 8.3.1 |  CUBRID 8.4.0 |  CUBRID 8.4.1 | 



cubrid_schema

Description

The cubrid_schema function gets specific schema information of a database. You should specify class_name to get information related to a specific class, and attr_name to get information related to a specific attribute (currently, only used with CUBRID_SCH_ATTR_PRIVILEGE).

Syntax

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

  • conn_identifier : Connection identifier
  • schema_type : Type of schema you want to get
  • class_name : Class from which schema is to be obtained
  • attr_name : Attribute from which schema is to be obtained
Return Value
  • Success : Array in which schema information is contained
  • Failure : FALSE

The result of the cubrid_schema() function is returned as a two-dimensional array(column (associative array) * row (numeric array)). The following table shows types of schema and the column structure of the result array to be returned based on the schema type.

Schema

Column Number

Column Name

Value

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

 

Example

<?php

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

 

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

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

var_dump($pk);

 

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

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

var_dump($fk);

 

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

$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"

  }