Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL触发器从表中选择*并检查每个值并更新其他表_Mysql_Triggers - Fatal编程技术网

MYSQL触发器从表中选择*并检查每个值并更新其他表

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

我的一个表有一个触发器,该触发器将在更新表后执行,以检查更新的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 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我如何编写注释部分不一定,但它应该很容易翻译成这样。