【mysql】 DBをワイルドカードで指定したい人生だった
ご無沙汰しております。ご無沙汰しております。
いつもの「覚書だけ置いて帰る」の時間です。
やりたかったことといえば、
select col1,col2 from `%`.table
だけなんですよ。
grantの時はDBをワイルドカードで指定できるってことなんだから、やれていいんじゃないのこれ!
で、出来上がったごりごりコードがこれです。
DBIが使えないサーバだったので(でもシェルで書く気はなかった)、もうごりごりにもほどがあります。供養です。
#!/usr/bin/perl
use strict;
my $DBI='mysql -uID -pPASS ';
my @dbs = qx{$DBI -e "show databases;"|grep _};
`echo '' > result`; #ここのやるきのなくしかたがひどい
foreach my $db(@dbs){
print $db;
chomp($db);
if ( $db !~ '_schema$'){
my $ret = qx{$DBI $db -e "select COL1,COL2 from TABLE"|grep -v COL1};
open(DATA, '>> result') or die("error :$!"); print DATA $ret; close(DATA);
}
}
exit 0;
何が云いたいかというと、ほんとにselectのときDB名のとこワイルドカード使えないのん…?