更新后触发值取决于具有相同字段和表的其他行

时间:2013-10-16 10:54:39

标签: mysql triggers

我有一张看起来像这样的桌子

    IDLevel(int)<PK> | StepLevel(int)<PK> | Value(decimal)
    ------------------------------------------------------
    1                      1                 a+(0*100)
    1                      2                 a+(1*100)
    1                      3                 a+(2*100)
    1                      4                 a+(3*100)
    1                      5                 a+(4*100)
    1                      6                 a+(5*100)
    1                      7                 a+(6*100)
    1                      8                 a+(7*100)
    1                      9                 a+(8*100)
    2                      1               ((a+(4*100)+a+(5*100))/2)+(0*150)
    2                      2               ((a+(4*100)+a+(5*100))/2)+(1*150)
    2                      3               ((a+(4*100)+a+(5*100))/2)+(2*150)
    2                      4               ((a+(4*100)+a+(5*100))/2)+(3*150)
    2                      5               ((a+(4*100)+a+(5*100))/2)+(4*150)
    etc

如何根据StepLevel和IDLevel字段的第一个值自动更新字段值。

EDITED

增加StepLevel会在Value字段中添加相同的特定数字。

增加IDLevel将根据前一个IDLevel的StepLevel值添加一些算术运算(如示例所示,对于IDLevel 2,StepLevel 1将具有基于IDLevel 1的值(StepLevel4 Value + StepLevel 5 Value)/ 2

1 个答案:

答案 0 :(得分:0)

您应该使用DEFAULT语法在IDLevel和Step Level之间使用表达式来执行此操作 喜欢新表

mysql> CREATE TABLE newtb (IDLevel INT DEFAULT 1, StepLevel INT NOT NULL AUTO_INCREMENT PRIMARY KEY, VALUE DECIMAL DEFAULT expression);