我知道有这种说法ON UPDATE
,有没有一种方法可以用它在我的数据库中创建一个列,当这个值改变时,另一个预定义的值被设置为0? 在此先感谢。当值更新时更改值
例:
id | value | type
1 2 5
2 4 6
3 7 8
如果我更新的第一行的价值,我想类型automaticaly设置为0。
我知道有这种说法ON UPDATE
,有没有一种方法可以用它在我的数据库中创建一个列,当这个值改变时,另一个预定义的值被设置为0? 在此先感谢。当值更新时更改值
例:
id | value | type
1 2 5
2 4 6
3 7 8
如果我更新的第一行的价值,我想类型automaticaly设置为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
,update
和delete
的访问。只需使用存储过程。这样数据库可以照顾自己并保持自己的一致性。
需要使用mysql trigger此行
我不知道有这个问题。请提供示例输入和预期结果以及相关示例数据 – ariefbayu
您可以在更新后使用SQL的触发器功能,将每个新的行集类型归零。 – Jivan