在MySQL中,如何在同一行中更新另一列时自动为一列设置值?

时间:2013-12-24 08:30:05

标签: mysql sql sql-update

对于下面的示例表,有没有办法配置表以在UPDATE发生时使用Value列中的数据自动更新PreviousValue列?

table Settings
(
    Setting varchar(255),
    Value varchar(255),
    PreviousValue varchar(255)
)

2 个答案:

答案 0 :(得分:4)

CREATE TRIGGER my_trigger BEFORE UPDATE ON my_table FOR EACH ROW
  SET NEW.PreviousValue = OLD.Value;

答案 1 :(得分:2)

如果没有触发器,您也可以通过以下方式实现此目的:

UPDATE Settings SET PreviousValue = Value, Value = :new_value WHERE Setting = :setting