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