Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: DBI: checking if a table exists in a cross-DB manner?

by simonm (Vicar)
on Dec 02, 2004 at 20:11 UTC ( [id://411931]=note: print w/replies, xml ) Need Help??


in reply to DBI: checking if a table exists in a cross-DB manner?

I've got some functionality along this line in DBIx::SQLEngine -- feel free to copy out the relevant bits or use the module as a whole:
my $sqldb = DBIx::SQLEngine->new( $dbh ); print $sqldb->detect_table($tablename) ? 'Y' : 'N';

Basically I just try to select from the table and see if it succeeds; depending on which kind of database is in use, a different syntax is used to make a trivial query like "select * from $tablename limit 1" or "select * from $tablename where 1 = 0".

See the sql_detect_table() method in various "Driver::Foo" subclasses in the DBIx::SQLEngine distribution for the different queries.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://411931]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2024-04-25 23:28 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found