【问题标题】:MYSQL trigger to select * from table and check each value and update other tableMYSQL 触发器从表中选择 * 并检查每个值并更新其他表
【发布时间】:2012-06-17 11:59:15
【问题描述】:

我的一个表有一个触发器,该触发器将在更新表后执行,以检查更新的 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$$

【问题讨论】:

  • @JeremyGoodell 我如何写评论部分

标签: mysql triggers


【解决方案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$$

【讨论】:

  • 不一定,但应该很容易翻译成这样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-07
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
  • 2015-09-19
  • 1970-01-01
相关资源
最近更新 更多