Получить метаданные первичных ключей табличного объекта (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();