我在MySQL中找到了类似这样的代码来进行更新查询:
set @c:=0;
update tablename set fieldname=@c:=@c+1 ;
它运行正常,现在我正在尝试在JDO中实现它。所以我写了这样的代码:
Query query = pm.newQuery("javax.jdo.query.SQL","set @c:=0; update tablename set fieldname=@c:=@c+1");
但是我收到了一个错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的'UPDATE tablename set fieldname = @ c:= @ c + 1'附近使用正确的语法
那么在MYSQL更新查询中声明变量的正确语法是什么?
我删除了代码中的set部分,并按照以下方式对其进行了编辑:
Query query = pm.newQuery("javax.jdo.query.SQL","update tablename set fieldname=@c:=@c+1");
但后来我收到了这个错误:
第254行的“fieldname”列截断了数据
我在我的代码中包含datanucleus.allowMultiQueries=true;
,然后它也无效