MYSQL触发器从表中选择*并检查每个值并更新其他表
我的一个表有一个触发器,该触发器将在更新表后执行,以检查更新的id值字段的值是否为真(如果其中任何值为假),使用假更新其他表,否则使用真MYSQL触发器从表中选择*并检查每个值并更新其他表,mysql,triggers,Mysql,Triggers,我的一个表有一个触发器,该触发器将在更新表后执行,以检查更新的id值字段的值是否为真(如果其中任何值为假),使用假更新其他表,否则使用真 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 port
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$$
您不需要查询表,因为触发器已经知道正在操作的行的值。只需使用触发器提供的新构造 这是您的触发器的更新版本,尽管我在这台计算机上没有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$$
@JeremyGoodell我如何编写注释部分不一定,但它应该很容易翻译成这样。