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