调用mysql失败并显示错误

时间:2016-11-21 11:52:17

标签: mysql bash

我正在调用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' 

任何想法都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

您使用bash变量的方式不正确,请使用双引号(")扩展变量,例如:

mysql -q mydb -uuser --skip-column-names --execute="call delete_table_incrementally($batchsize)"