值更新时更改值

时间:2012-11-23 09:32:26

标签: php mysql

我知道有这个语句ON UPDATE,有没有办法用它在我的数据库中创建一个列,当这个值改变时,另一个预定义的值被设置为0? 提前谢谢。

例如:

id | value | type
1      2      5
2      4      6
3      7      8

如果我更新第一行的值,我希望类型自动设置为0。

4 个答案:

答案 0 :(得分:2)

您需要创建一个触发器,该触发器在每次更改行时都会执行,例如:

CREATE TRIGGER auto_update_type BEFORE UPDATE
ON your_table_name
FOR EACH ROW BEGIN

    if NEW.value <> OLD.value THEN
        SET NEW.type = 0;
    END IF;
END;

在此之后,每次进行查询时都会:

UPDATE table_name SET value = '10' WHERE id = 1;

如果该值与旧值不同,则会执行触发器并将类型设置为0

以下是如何从phpMyAdmin设置触发器:

enter image description here

答案 1 :(得分:0)

一个解决方案,你可以在php代码的帮助下完成这个。

首先,无论何时触发更新功能/操作,还要更新类型值。

答案 2 :(得分:0)

从PHP脚本中删除对insertupdatedelete SQL语句的所有访问权限。只需使用存储过程。这样,数据库可以照顾自己并保持自己的一致性。

答案 3 :(得分:0)

需要对此行使用mysql trigger