如何更新到字段+1的最大值?

时间:2016-03-29 17:22:33

标签: sql ms-access

我需要将表 myTable 中的记录中的字段 myField 更新为该字段+1的最大值。

我尝试过以下查询:

UPDATE myTable
SET myField = max(myField)+1
WHERE myField = 121 and foriegnKey = 124

但是我收到以下错误:

查询不包含指定表达式'myField'作为聚合函数的一部分

我在MySQL中找到了这个问题的答案,但它对我不起作用:

UPDATE myTable set field = 
((SELECT maxField 
FROM 
(SELECT MAX(myField) AS maxField  
FROM myTable) AS q) + 1) 
WHERE myField = 121 and foriegnKey = 124

我收到以下错误:

操作必须使用可更新的查询

1 个答案:

答案 0 :(得分:1)

由于您知道MAX()+ 1技术通常是Bad Idea™,因此在您的特定情况下,您应该能够使用DMax()域聚合函数。我不是100%清楚你想要完成什么,但似乎你想要这样的东西:

UPDATE myTable SET myField = DMax("myField", "myTable") + 1
WHERE myField = 121 and foriegnKey = 124