使用上一行的值更新列

时间:2015-06-24 10:46:52

标签: mysql sql

我有一个MySQL数据库,其中包含一个名为A的表,其结构和值如下:

Table A
id int PK,
col2 date,
col3 varchar(255) not null,
col4 int

价值观:

id      col2          col3       col4
1    2015-06-02      Hardisk     204
2    2015-06-03      Pendrive    204
3    2015-06-05      Monitor     204

假设我添加了一些新数据,因此col4的值现在更改为1.

id      col2          col3       col4
1    2015-06-02      Hardisk      1
2    2015-06-03      Pendrive     1
3    2015-06-05      Monitor      1
4    2015-06-08      Printer      1

现在假设我删除了id = 1的行。现在,我想将col4更新回204.就像这样:

id      col2          col3       col4
1    2015-06-02      Hardisk     204
2    2015-06-03      Pendrive    204
3    2015-06-05      Monitor     204

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果它不是动态值,您可以在以下内容中执行此操作:

UPDATE A
SET col4 = 204

如果它是动态值,则不能以简单的方式将值回滚到之前。为此,如果你想在将来操作它,你应该创建类似col5的东西来存储旧值。

获得一种方法它,例如,您可以创建更新触发器。更新后,将删除的值插入新列(col5)。