Получить метаданные первичных ключей табличного объекта (primary_key_info)
Назначение
Метод primary_key_info
предоставляет информацию о первичных ключах табличного объекта БД.
Пакет
Package Linter::db
Прототип
$sth = $dbh- >primary_key_info($catalog, $schema, $table);
Параметр | Описание | |
---|---|---|
$catalog
| См. метод table_info (параметр не принимает шаблон для поиска) | |
$schema
| См. метод table_info (параметр не принимает шаблон для поиска) | |
$table
| См. метод table_info (параметр не принимает шаблон для поиска) |
Возвращаемые значения
Переменная | Описание | |
---|---|---|
$sth | Объект Statement Handle |
Запись метаданных о первичном ключе табличного объекта БД представлена в виде массива из следующих элементов:
Имя элемента | Значение | |
---|---|---|
TABLE_CAT
| Пустая строка | |
TABLE_SCHEM
| Имя схемы таблицы (символьное значение в кодировке ANSI длиной до 66 символов) | |
TABLE_NAME
| Имя таблицы | |
COLUMN_NAME
| Имя столбца, который является первичным ключом | |
KEY_SEQ
| Значение 1 | |
PK_NAME
| Имя первичного ключа |
Примечание
Если клиентское приложение выполняется от имени пользователя БД, который не имеет дискретного или мандатного доступа к некоторым объектам БД, то результат не будет содержать инфорацию об этих объектах.
Пример
Получить информацию о первичных ключах таблицы TEST_TABLE:
my $drh = DBI- >install_driver('Linter'); my $dbh = $drh- >connect("", "SYSTEM", "MANAGER8") or die "Could not connect to database: " . DBI- >errstr; $dbh- >do("create table TEST_TABLE(int_column int, char_column char(16), pk_col int primary key);"); my $sth = $dbh- >primary_key_info('', 'TEST_TABLE', ''); while (my $data_ref = $sth- >fetchrow_hashref()) { print($data_ref- >{TABLE_CAT} . "\n"); print($data_ref- >{TABLE_SCHEM} . "\n"); print($data_ref- >{TABLE_NAME} . "\n"); print($data_ref- >{COLUMN_NAME} . "\n"); print($data_ref- >{KEY_SEQ} . "\n"); print($data_ref- >{PK_NAME} . "\n"); } $dbh- >do("drop table TEST_TABLE;"); $sth- >finish(); $dbh- >disconnect();