(PECL PDO_CUBRID >= 8.3.0.0001)
PDO::cubrid_schema — Получает информацию о схеме
Метод получает информацию о схеме из базы данных.
Потребуется указать название таблицы table_name, чтобы получить информацию о конкретной таблице,
название столбца col_name, чтобы получить информацию о конкретном столбце;
параметр с названием столбца работает только с флагом PDO::CUBRID_SCH_COL_PRIVILEGE.
Метод возвращает результат в виде двумерного массива (столбец (ассоциативный массив) * строка (числовой массив)). Следующие таблицы показывают типы схем и структуру столбцов массива с результатами, который вернёт метод на основе типа схемы.
| Схема | Номер столбца | Название столбца | Значение |
|---|---|---|---|
| PDO::CUBRID_SCH_TABLE | 1 | NAME | |
| 2 | TYPE | 0:system table 1:view 2:table | |
| PDO::CUBRID_SCH_VIEW | 1 | NAME | |
| 2 | TYPE | 1:view | |
| PDO::CUBRID_SCH_QUERY_SPEC | 1 | QUERY_SPEC | |
| PDO::CUBRID_SCH_ATTRIBUTE / PDO::CUBRID_SCH_TABLE_ATTRIBUTE | 1 | ATTR_NAME | |
| 2 | DOMAIN | ||
| 3 | SCALE | ||
| 4 | PRECISION | ||
| 5 | INDEXED | 1:indexed | |
| 6 | NOT NULL | 1:not null | |
| 7 | SHARED | 1:shared | |
| 8 | UNIQUE | 1:unique | |
| 9 | DEFAULT | ||
| 10 | ATTR_ORDER | base:1 | |
| 11 | CLASS_NAME | ||
| 12 | SOURCE_CLASS | ||
| 13 | IS_KEY | 1:key | |
| PDO::CUBRID_SCH_METHOD / PDO::CUBRID_SCH_TABLE_METHOD | 1 | NAME | |
| 2 | RET_DOMAIN | ||
| 3 | ARG_DOMAIN | ||
| PDO::CUBRID_SCH_METHOD_FILE | 1 | METHOD_FILE | |
| PDO::CUBRID_SCH_SUPER_TABLE / PDO::CUBRID_SCH_DIRECT_SUPER_TABLE / PDO::CUBRID_SCH_SUB_TABLE | 1 | CLASS_NAME | |
| 2 | TYPE | 0:system table 1:view 2:table | |
| PDO::CUBRID_SCH_CONSTRAINT | 1 | TYPE | 0:unique 1:index 2:reverse unique 3:reverse index |
| 2 | NAME | ||
| 3 | ATTR_NAME | ||
| 4 | NUM_PAGES | ||
| 5 | NUM_KEYS | ||
| 6 | PRIMARY_KEY | 1:primary key | |
| 7 | KEY_ORDER | base:1 | |
| PDO::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 | ||
| PDO::CUBRID_SCH_TABLE_PRIVILEGE / PDO::CUBRID_SCH_COL_PRIVILEGE | 1 | CLASS_NAME / ATTR_NAME | |
| 2 | PRIVILEGE | ||
| 3 | GRANTABLE | ||
| PDO::CUBRID_SCH_PRIMARY_KEY | 1 | CLASS_NAME | |
| 2 | ATTR_NAME | ||
| 3 | KEY_SEQ | base:1 | |
| 4 | KEY_NAME | ||
| PDO::CUBRID_SCH_IMPORTED_KEYS / PDO::CUBRID_SCH_EXPORTED_KEYS / PDO::CUBRID_SCH_CROSS_REFERENCE | 1 | PKTABLE_NAME | |
| 2 | PKCOLUMN_NAME | ||
| 3 | FKTABLE_NAME | base:1 | |
| 4 | FKCOLUMN_NAME | ||
| 5 | KEY_SEQ | base:1 | |
| 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 |
schema_typeТип схемы, информацию о котором требуется узнать.
table_nameНазвание таблицы, информацию о схеме которой требуется узнать.
col_nameНазвание столбца, схему которого требуется узнать.
Метод возвращает ассоциативный массив с информацией о схеме, если процесс выполнился успешно.
При ошибке метод возвращает значение false.
Пример #1 Пример получения информации о схеме методом PDO::cubrid_schema()
Пример показывает, как получить информацию о первичных и внешних ключах таблицы "game".
<?php
$pk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_PRIMARY_KEY, "game");
print_r($pk_list);
$fk_list = $dbh->cubrid_schema(PDO::CUBRID_SCH_IMPORTED_KEYS, "game");
print_r($fk_list);
?>Результат выполнения приведённого примера:
Результат:
Array
(
[0] => Array
(
[CLASS_NAME] => game
[ATTR_NAME] => athlete_code
[KEY_SEQ] => 3
[KEY_NAME] => pk_game_host_year_event_code_athlete_code
)
[1] => Array
(
[CLASS_NAME] => game
[ATTR_NAME] => event_code
[KEY_SEQ] => 2
[KEY_NAME] => pk_game_host_year_event_code_athlete_code
)
[2] => Array
(
[CLASS_NAME] => game
[ATTR_NAME] => host_year
[KEY_SEQ] => 1
[KEY_NAME] => pk_game_host_year_event_code_athlete_code
)
)
Array
(
[0] => Array
(
[PKTABLE_NAME] => athlete
[PKCOLUMN_NAME] => code
[FKTABLE_NAME] => game
[FKCOLUMN_NAME] => athlete_code
[KEY_SEQ] => 1
[UPDATE_RULE] => 1
[DELETE_RULE] => 1
[FK_NAME] => fk_game_athlete_code
[PK_NAME] => pk_athlete_code
)
[1] => Array
(
[PKTABLE_NAME] => event
[PKCOLUMN_NAME] => code
[FKTABLE_NAME] => game
[FKCOLUMN_NAME] => event_code
[KEY_SEQ] => 1
[UPDATE_RULE] => 1
[DELETE_RULE] => 1
[FK_NAME] => fk_game_event_code
[PK_NAME] => pk_event_code
)
)