在shell脚本中使用MySql中的concat函数

时间:2015-02-23 13:42:51

标签: mysql shell

我有以下脚本,它在分配给员工的每个数据库中从Employee表中获取员工ID,并更改相应数据库中的EmployeeLedger_ $ empId表

cls_ip="localhost";

mysql="mysql -h $cls_ip -u root"
list=`echo "show databases like '$dbPattern'" | $mysql| grep -v Database`

for db in $list
do
    echo "altering EmployeeLedger table for database $db";
    ${mysql} ${db} -e "use $db";
    empId=`${mysql} ${db} -e "select EMPID from Employee"`;
    echo "$empId";
    ${mysql} ${db} -e "alter table concat('EmpTimeLedger',$empId) add column HOLIDAY tinyint(1) not null default 1;";
done

这里我没有成功将从Employee表中检索到的员工ID与EmplyeeLedger连接起来形成EmployeeLedger_ $ empId表。我该怎么做?

2 个答案:

答案 0 :(得分:1)

我认为最简单的方法是简单地将empId连接到您的表名称:

table="EmpTimeLedger_$empId";

然后你会像这样改变你的表:

ALTER TABLE $table
ADD COLUMN HOLIDAY TINYINT(1) NOT NULL DEFAULT 1;

答案 1 :(得分:0)

为什么不尝试像这样的手动字符串连接

富= “EmpTimeLedger” FOO + = $ EMPID

$ {mysql} $ {db} -e“alter table $ foo add column HOLIDAY tinyint(1)not null default 1;”