Можно ли как-то получить информацию о том, что столбец имеет атрибуты UNIQUE или AUTO_INCREMENT.
Пробовал анализировать вывод $dbh->column_info, но не нашёл там ничего похожего.
Вот код, который я использую для получения информации о всех таблицах:
#!/usr/bin/perl
use warnings;
use strict;
# This program makes a snapshot of DB structure
use lib '..';
use Settings;
use Db;
my $st_table = $Db::dbh->table_info(undef, undef, undef, undef) or die "table_info failed\n";
my $table_hash;
my $i;
for( $i = 1; -e "snapshot_$i"; ++$i ) { }
open(STDOUT, ">snapshot_$i");
while( $table_hash = $st_table->fetchrow_hashref() ) {
my $table_name = $table_hash->{TABLE_NAME};
print "TABLE $table_name\n";
my $st_field = $Db::dbh->column_info(undef, undef, $table_name, '%') or die "column_info failed\n";
my $field_hash;
my $primary_keys;
while( $field_hash = $st_field->fetchrow_hashref() ) {
$primary_keys .= ($field_hash->{COLUMN_NAME} . ",") if $field_hash->{mysql_is_pri_key};
print "\t";
print $field_hash->{COLUMN_NAME};
print " ", $field_hash->{mysql_type_name};
print " NOT NULL" if not $field_hash->{NULLABLE};
print "\n";
print "-------data-------\n";
my( $key, $value );
while( ($key, $value) = each(%{$field_hash}) ) {
print "\"$key\"=>\"", (defined($value))?($value):("undef"), "\"\n";
}
print "-------end--------\n";
}
if ($primary_keys) {
$primary_keys =~ s/^(.*),$/$1/;
print "\tPRIMARY KEY ($primary_keys)\n";
}
}
Db это вспомогательный класс, в данном случае он просто осуществляет соединение
с базой данных и создаёт $Db::dbh
Ответ на:
комментарий
от r_asian
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Внесение данных из формы в базу perl dbi (2017)
- Форум Медленный инсерт и апдейт в мускуле (2022)
- Форум Парсинг логов в MySQL с помощью Perl скрипта (2017)
- Форум Задание на Stepik по Perl. Никак не могу понять, где загвоздка. HELP. (2020)
- Форум Perl + FastCGI + nginx (2009)
- Форум Добавление элементов в hash reference в рекурсивной функции (2015)
- Форум upload interrupt (2006)
- Форум Решил освоить perl =) (2005)
- Форум MySQL - DBI Perl - подключение (2001)
- Форум Perl DBI + MySql проблема (2004)