2

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

示例:

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

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

4

4 回答 4

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 设置触发器:

在此处输入图像描述

于 2012-11-23T09:54:52.707 回答
0

一种解决方案,您可以在 php 代码的帮助下完成此操作。

首先,每当您的更新功能/操作被触发,然后也更新类型值。

于 2012-11-23T09:47:18.583 回答
0

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

于 2012-11-23T09:51:01.273 回答
0

需要对这一行使用mysql 触发器

于 2012-11-23T09:51:58.897 回答