AFAIK, there isn't a way to conditionally create a table only if the SELECT returns some rows. You just have to query the number of rows in the new table and delete it if it is empty.

That said, I'm not sure what you are gaining in your example by creating smaller tables. If you have an index on the pat column, then it is not that less efficient to just query the main table and add a 'WHERE pat = ...' clause to restrict your query to what would be in the smaller table. Also, if you create the smaller tables, you'll have to update them whenever you update, insert or delete rows from the main table.

Finally, use placeholders!

my $a_sthexpt = $dbhexpt->prepare("CREATE TABLE TableNameexpt SEL +ECT * FROM final_exp WHERE pat = ?"); $a_sthexpt->execute($row[0]);


In reply to Re: skip empty mysql table by pc88mxer
in thread skip empty mysql table by ArmandoG

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.