我正在我的一个表中有一个触发器,它将在更新表后执行以检查id值的字段值是否更新,如果任何值为false则为true,更新其他表为false else与真实。
DELIMITER $$
CREATE
TRIGGER users_lookups
AFTER UPDATE ON UsersValidations
FOR EACH ROW
BEGIN
SELECT * FROM UsersValidations where id=New.id;
/* MY SCENARIO
{ HOW to do this portion
if(UsersValidations.value1 =="true" and UsersValidations.value2=="true" and UsersValidations.value3=="true")
{
update table2 set myvalue="true" where id=New.id;
}
else
{
update table2 set myvalue="false" where id=New.id;
}
}*/
END$$
答案 0 :(得分:1)
您不需要查询表,因为触发器已经知道正在操作的行的值。只需使用触发器提供的New构造。
这是你的触发器的更新版本,虽然我在这台计算机上没有mysql,所以我无法验证语法。考虑这种伪代码。
DELIMITER $$
CREATE
TRIGGER users_lookups
AFTER UPDATE ON UsersValidations
FOR EACH ROW
BEGIN
if(New.value1 =="true" and New.value2=="true" and New.value3=="true")
{
update table2 set myvalue="true" where id=New.id;
}
else
{
update table2 set myvalue="false" where id=New.id;
}
END$$