我知道有这个语句ON UPDATE
,有没有办法用它在我的数据库中创建一个列,当这个值改变时,另一个预定义的值设置为 0 ?提前致谢。
示例:
id | value | type
1 2 5
2 4 6
3 7 8
如果我更新第一行的值,我希望类型自动设置为 0。
您需要创建一个触发器,该触发器在每次更改行时执行,例如:
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 设置触发器:
一种解决方案,您可以在 php 代码的帮助下完成此操作。
首先,每当您的更新功能/操作被触发,然后也更新类型值。
insert
从您的 PHP 脚本中删除对和SQL 语句的update
所有访问权限。delete
只需使用存储过程。这样,数据库可以照顾自己并保持自己的一致性。
需要对这一行使用mysql 触发器