欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

hsql 倒序批量更新的有关问题,坐等啊

更新时间: 2014-01-05 02:32:30 责任编辑: Author_N1

 

HSQL 倒序批量更新的问题,坐等啊!!!
有数据表Tab,其中有a,b 2个字段,并且a和b为联合主键,a为String类型,b为int型,
如下所示:
+------------------+
|    a     |    b      |
+------------------+
|    M1   |    1      |
|    M1   |    2      |
|    M1   |    3      |
|    M1   |    4      |
|    M2   |    1      |
|    M2   |    2      |
|    M3   |    1      |
+-----------------+

现在要把a=‘M1‘处b的值都加1,由于业务需要,要从b最大的值开始加

下面是我写的2条SQL语句

SQL 1

update Tab set b= (b + 1) where a= 'M1' order by b desc

SQL 2

update (select a,b from Tab where a='M1' order by a,b desc)a inner join Tab b on a.b = b.b and a.a=b.a set b.b = a.b +1


这2条SQL在HSQL中都执行不通,
第一条报错为
Unexpected token: ORDER in statement [update Tab set b= (b + 1) where a= 'M1' order by b desc
]
第二条报错为
找不到table

但是这2个SQL在MYSQL,MSSQL中都可以执行,
就是HSQL不行,不行啊。。。
------最佳解决方案--------------------
那就直接用SELECT *,B+1 into ... FROM TT where ...
用新表即可
------其他解决方案--------------------
hsql中无法直接替换,
SELECT a,B+1 FROM TT where a='m1'
union
select * from tt where a='m2'

------其他解决方案--------------------
HQL 中无法实现。
------其他解决方案--------------------
求达人们赐我一条可以用的hsql语句吧
------其他解决方案--------------------
说具体点呢,
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:32:30
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11169/
本文WWW.DOC100.NET DOC100.NET版权所有。