Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
Howdy :)

(I thought this might have been a FAQ, but it doesn't appear to be)

I'm aware that table names cannot be used with place holders. From the DBI docs - "With most drivers, placeholders can't be used for any element of a statement that would prevent the database server from validating the statement and creating a query execution plan for it."

Fair enough.
But what is the usual/recommended approach when you strike a situation where you think you would _like_ to use placeholders for table names?

In my particular situation, I have something like (contrived example):

INSERT INTO Widgets201003 (moo, baa, cluck) VALUES (?, ?, ?) INSERT INTO Widgets201004 (moo, baa, cluck) VALUES (?, ?, ?) INSERT INTO Widgets201005 (moo, baa, cluck) VALUES (?, ?, ?)
Obviously, it would be nice if I could do:
INSERT INTO ? (moo, baa, cluck) VALUES (?, ?, ?)
But of course, that doesn't work.
One approach might be to come up with a better data base design, but unfortunately I'm dealing with legacy stuff that cannot be changed without causing copious amounts of grief and heartache ;)

I've thought about perhaps building a hash of SQL statements, using the table names as keys - but that feels really horrible.

So, how do others generally approach this?
Is there a module about that addresses this particular problem?

If it matters, I'm dealing with both MySQL & PostgreSQL

many thanks,
Darren :)


In reply to DBI - Table names & placeholders by McDarren

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

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

    No recent polls found