/usr/local/perl/lib/site_perl/5.8.5/DB/Introspector.pm |
DB::Introspector
use DB::Introspector; my $introspector = DB::Introspector->get_instance($dbh); my $table = $introspector->find_table('foo'); print $table->name;
# showing the table's indexes foreach my $index ($table->indexes) { print $index->name.": (".join(",",$index->column_names).")\n"; }
# showing the table's foreign keys foreach my $foreign_key ($table->foreign_keys) {
print $foreign_key->foreign_table->name;
print join(",",$foreign_key->foreign_column_names);
}
# showing foreign keys that reference this table ('foo') foreach my $foreign_key ($table->dependencies) { print "Some other table :".$foreign_key->local_table->name ." is pointing to me\n"; } my @tables = $introspector->find_all_tables;
# you can do other cool stuff; just read the docs.
DB::Introspector looks into database metadata and derives detailed table level and foreign key information in a way that conforms to a collection common interfaces across all dbs. The DB::Introspector::Utils::* classes take advantage of these common interfaces in order to carry out relationship traversal algorithms (like finding the column level and table level mappings between two indirectly related tables).
find_table($table_name)
Params:
$table_name - the name of the table that you wish to find
Returns: DB::Introspector::Base::Table
Returns: An array (@) of DB::Introspector::Base::Table instances for each table that exists in the database.
get_instance($dbh)
Params:
$dbh - An instance of a DBI database handle.
Returns: DB::Introspector instance
Returns: A DBI database handle instance (DBI::db).
the DB::Introspector::Base::Table manpage
the DB::Introspector::Base::ForeignKey manpage
the DB::Introspector::Utils::RelInspect manpage
the DB::Introspector::Base::BooleanColumn manpage
the DB::Introspector::Base::CharColumn manpage
the DB::Introspector::Base::Column manpage
the DB::Introspector::Base::DateTimeColumn manpage
the DB::Introspector::Base::IntegerColumn manpage
the DB::Introspector::Base::StringColumn manpage
Masahji C. Stewart
The DB::Introspector module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
/usr/local/perl/lib/site_perl/5.8.5/DB/Introspector.pm |