使用带insert的参数时出现JMeter sql语法错误



我正在使用JMeter在mySQL数据库(memsql服务器,mySQL语法(上加载测试查询。我正在使用JMeter的gui版本来创建一个测试计划xml文件,然后转到另一台服务器,以非gui模式运行该xml。

我有两个查询在运行,一个选择,一个插入。这两个查询都使用了我用脚本创建的csv文件中的参数。我的SELECT语句可以很好地处理从csv文件中获取的参数,但我在INSERT语句中遇到了语法错误:

INSERT INTO customer_transactions_current (`column_name1`, ... , `column_name12`)
VALUES ((${r1},${r2},${r3},${r4},${r5},${r6},${r7},${r8},${r9},${r10},${r11},${r12}));

在gui模式下的"CSV数据集配置"下的查询部分,我选择用","分隔数据,变量名为r1,。。,r12。在查询本身下,我输入了参数类型,并再次输入了相同的名称,就像我对正在工作的SELECT查询所做的那样。

当我运行查询时,我在第一列(类型为datetime(上遇到语法错误:

java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '19:00:00,75400492,936988,56,1115,5,2156,8,2,3,909,3))' at line 2

我输入的日期格式为:"2018-11-2 20:00:00",在csv文件中,它们不带撇号。

语法错误似乎与日期以及包含空格的位置有关。我尝试为该列输入STR_TO_DATE函数,但一直出现语法错误。但是当我尝试从文件中获取一些值并手动运行查询时,它运行得很好!因此,我的想法是,在发送查询之前,它与JMeter的空间转换有关。

我的JMeter配置有问题吗?由于查询是手动确定的。

添加撇号以插入和删除不必要的括号

INSERT INTO customer_transactions_current ('column_name1', ... , 'column_name12')
VALUES ('${r1}','${r2}','${r3}','${r4}','${r5}','${r6}','${r7}','${r8}','${r9}','${r10}','${r11}','${r12}');

如果您有日期问题,请参阅使用STR_TO_date

最新更新