RE: Possible to get field names and types in a table without executing a query?
- From: rjk-dbi@xxxxxxxxxxx (Ronald J Kimball)
- Date: Tue, 27 Jun 2006 10:46:03 -0400
brian.barto@xxxxxxxxxxxxxxxxxxx wrote:
Hi all. My goal is to get a list of all field names and data types for
those fields in any given table in a mysql database. From reading the
DBI documentation, the only way I've been able to do this is by
preparing and executing a query against a table first. Then I would use
$sth->{NAME} and $sth->{TYPE} to get the field names and their
respective data types. it looks like this:
$sth = $dbh->prepare("SELECT * FROM $table") or die "Can't prepare
statement!\n";
$sth->execute or die "Can not execute statement!\n";
@types = @{$sth->{TYPE}};
@cols = @{$sth->{NAME}};
This seams like wasted overhead since I don't use the results of the
query. Also, since my query is "SELECT * FROM $table", which dumps all
data in the table, you may understand my concern for wasted overhead
when dealing with tables of a significant size.
Is there a way to get table names and data types without executing a
query? If not, is there a query I can use that will... say... only
return the first row (without WHERE clauses), to minimize the overhead?
I'm not sure what your objection to WHERE clauses is... You could do
something like SELECT * FROM $table WHERE 0=1.
DBI also has table_info() and column_info() methods which might be useful to
you.
Ronald
.
- References:
- Prev by Date: Possible to get field names and types in a table without executing a query?
- Next by Date: RE: dbi-users@perl.org
- Previous by thread: Possible to get field names and types in a table without executing a query?
- Next by thread: Re: Possible to get field names and types in a table without executing a query?
- Index(es):
Relevant Pages
|