Advertisement
DRVTiny

check_tables_exists_pg_and_my.pl

May 27th, 2019
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.62 KB | None | 0 0
  1. sub __check_table_exists {
  2.   state $byDbType = {
  3.     'postgresql' => {
  4.       'schema'  => 'current_schema',
  5.       'catalog' => 'current_catalog',
  6.     },
  7.     'mysql'     => {
  8.       'schema'  => 'database()',    
  9.     },
  10.   };
  11.   my ($dbh, $tableName) = @_;
  12.   my $dbType = lc $dbh->get_info(SQL_DBMS_NAME);
  13.   $dbh->selectall_arrayref(sprintf <<'EOSQL', $tableName, $byDbType->{$dbType}{'schema'}, exists($byDbType->{$dbType}{'catalog'}) ? 'AND table_catalog=' . $byDbType->{$dbType}{'catalog'} : '')->[0][0];
  14. SELECT COUNT(1)
  15. FROM information_schema.tables
  16. WHERE
  17.   table_name='%s'
  18.     AND
  19.   table_schema=%s
  20.   %s
  21. EOSQL
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement