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