在公司经常用到的几个方法,做个备份
1:执行sql语句
function executeSql()
{
sql="$1"
if [ "$sql" = "" ]
then
cat | mysql -uroot test --local-infile -N -f
else
echo "$sql" | mysql -uroot test --local-infile -N -f
fi
}
2:产生序号
function range(){
n="$1"
if [ "$n" = "" ]
then
n=100
fi
len=`expr length $n - 1`
echo "" | awk -F"\t" '{
for(i=0;i<num;i++){
printf("%0'${len}'d\n",i);
}
}' num=${n}
}
3:去掉字符串头尾空格
#示例:trim "abc "
function trim()
{
echo "$1" | grep -o "[^ ]\+\( \+[^ ]\+\)*"
}
function initMethod()
{
theDay="$1"
if [ "$theDay" = "" ]
then
theDay=`date +%Y%m%d -d "1 days ago "`
fi
theDay2=`date +%Y-%m-%d -d "$theDay"`
theDayYesterday=`date +%Y%m%d -d "$theDay 1 days ago "`
theDayNextDay=`date +%Y%m%d -d "$theDay 1 days"`
theDayNextNextDay=`date +%Y%m%d -d "$theDay 2 days"`
echo -e "\n\n `date +\"[ %F %T ] \"` `basename $0`"
}
##分表联合
function createUnionSql()
{
baseTableName="$1"
range | while read num
do
echo "${baseTableName}_${num},"
done
}
function createUnionTable()
{
baseTableName="$1"
unionSql=`createUnionSql "$1"`;
unionSql=`echo $unionSql | awk '{print substr($0,0,length($0)-1)}'`
sql="drop table if exists ${baseTableName};
create table ${baseTableName} like ${baseTableName}_00;
alter table ${baseTableName} engine=MRG_MyISAM DEFAULT CHARSET=gbk union=(${unionSql});"
executeSql "$sql"
}