我正在调用mysql程序,它失败并出现以下错误。我无法弄清楚问题是什么。
我的shell脚本代码段如下:
export batchsize=$1
echo $batchsize
myvar=$(mysql -q mydb -uuser --skip-column-names --execute='call delete_table_incrementally(batchsize)')
mysql程序的代码片段如下:
create procedure delete_table_incrementally(IN batchsize MEDIUMINT(3))
modifies sql data
begin
DELETE FROM mytable where mycondition='ERROR-5000' order by id limit batchsize;
commit;
select count(*) FROM mytable where mycondition='ERROR-5000';
end;
//
delimiter ;
call delete_table_incrementally();
执行bash脚本的mysql的错误代码/响应是:
ERROR 1054 (42S22) at line 1: Unknown column 'batchsize' in 'field list'
任何想法都会受到赞赏。
答案 0 :(得分:1)
您使用bash
变量的方式不正确,请使用双引号("
)扩展变量,例如:
mysql -q mydb -uuser --skip-column-names --execute="call delete_table_incrementally($batchsize)"