Python 炼金术只更新递增值

Python 炼金术只更新递增值,python,flask,flask-sqlalchemy,Python,Flask,Flask Sqlalchemy,我偶然发现了一个我似乎无法理解的问题 我有一个数据库(理想情况下),其中包含以下条目: {id:1,name:"<somename>", value:1} {id:2,name:"<somename>", value:2} {id:3,name:"<somename>", value:3} {id:4,name:"<somename>", value:4} {id:5,name:"<somename>", value:5} 但是,,

我偶然发现了一个我似乎无法理解的问题

我有一个数据库(理想情况下),其中包含以下条目:

{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", value:3}
{id:4,name:"<somename>", value:4}
{id:5,name:"<somename>", value:5}
但是,, 事实上,我的数据库如下所示:

{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", value:3}
{id:4,name:"<somename>", value:5}
{id:5,name:"<somename>", value:10}
{id:1,名称:,值:1}
{id:2,名称:“”,值:2}
{id:3,名称:“”,值:3}
{id:4,名称:“”,值:5}
{id:5,名称:“”,值:10}
我希望从一个值N开始,并且仅在前一个条目的值为M=N-1的情况下增加值。例如:

之前:

{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", value:3}
{id:4,name:"<somename>", value:5}
{id:5,name:"<somename>", value:10}
{id:1,名称:,值:1}
{id:2,名称:“”,值:2}
{id:3,名称:“”,值:3}
{id:4,名称:“”,值:5}
{id:5,名称:“”,值:10}
N=1之后:

{id:1,name:"<somename>", **value:2**}
{id:2,name:"<somename>", **value:3**}
{id:3,name:"<somename>", **value:4**}
{id:4,name:"<somename>", **value:5**}
{id:5,name:"<somename>", value:10}
{id:1,名称:,**值:2**}
{id:2,名称:,**值:3**}
{id:3,名称:,**值:4**}
{id:4,名称:,**值:5**}
{id:5,名称:“”,值:10}
或者另一个例子:以前

{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", value:3}
{id:4,name:"<somename>", value:5}
{id:5,name:"<somename>", value:10}
{id:1,名称:,值:1}
{id:2,名称:“”,值:2}
{id:3,名称:“”,值:3}
{id:4,名称:“”,值:5}
{id:5,名称:“”,值:10}
N=3,之后:

{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", **value:4**}
{id:4,name:"<somename>", **value:5**}
{id:5,name:"<somename>", value:10}
{id:1,名称:,值:1}
{id:2,名称:“”,值:2}
{id:3,名称:,**值:4**}
{id:4,名称:,**值:5**}
{id:5,名称:“”,值:10}

在第一个示例中,如果此行没有“previous”条目,那么如何将行
{id:1,name:,value:1}
应用于规则“仅增量值,其中上一个条目的值为M=N-1”?或者,您的任务声明,无论发生什么情况,包含N的行都会发生更改,但上述规则仅适用于后续行,因此您的算法无论发生什么情况都会至少更改1行。正如我所看到的,你的第一个和第二个例子有冲突。您的第二个示例说明,该算法查找行id=3,值=3,并将值从3更改为4,因此id=4,值=5的行开始应用于规则M=N-1。但是如果我们对第一个示例应用相同的算法,它将以如下方式执行:查找行id=1,值=1,将值从1更改为2,但是id=2的行不会应用于规则,也不会更改,因为现在您的状态是:
{id:1,value:2}{id:2,value:2}
,对于id=2的行,它不会应用于M=N-1
{id:1,name:"<somename>", value:1}
{id:2,name:"<somename>", value:2}
{id:3,name:"<somename>", **value:4**}
{id:4,name:"<somename>", **value:5**}
{id:5,name:"<somename>", value:10}