大家好,我现在有这样一个问题,就是我有一个任务,这个任务下有四个子任务,每个子任务都有四种状态:尚未启动、等待调度、停止未完成、停止已完成。每个子任务都是他们自己维护自己的状态。我现在想写一个触发器,就是主任务的状态可以根据四个子任务的状态来确定。各位大虾,这个触发器应该怎么写啊?急急急

解决方案 »

  1.   

    你的表什么? 一个表?还是多个表? 期望数据如何变化?举例说明你的要求。   建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    所有数据在同一个表中,我的期望是:当四个子任务中有一个子任务状态变为等待调度时,主任务状态变为等待调度,当有一个子任务状态变为正在运行时,主任务状态变为正在运行,当子任务全部运行结束时,主任务状态为停止且已完成,当运行的子任务有停止未完成的任务时,主任务的状态为停止未完成。
    例如:
     主任务test下有四个子任务A、B、C、D。开始的时候他们都是尚未启动状态,现在我启动子任务A、和B。那么子任务A和B的状态就是等待调度了。这时要求主任务的状态变为等待调度。当子任务A调动它的引擎起来之后,它的状态就为正在运行,这时主任务也要变为正在运行。当子任务A和B都是正在运行时,手动停止了子任务B,这时子任务B状态变为停止未完成,这时当子任务A正常停止完成时,主任务要为停止未完成。当两个子任务A和B都正常停止且已完成时,主任务状态也为停止且已完成。总结起来就是子任务中有一个子任务的状态是正在运行,主任务就要变为正在运行。如果子任务没有正在运行的状态,有一个子任务是等待调度,主任务就是等待调度。所有子任务完成了,主任务状态变为停止且已完成,如果有一个停止未完成,主任务状态为停止未完成。希望你能帮助我,先谢了。。
      

  3.   

    create table status(
        scan_id int(11) not null,
        scan_subid int(11) not null,
        status int(4),
        PRIMARY KEY(scan_id,scan_subid)
      )insert into status values(1,0,0);
    insert into status values(1,1,0);
    insert into status values(1,2,0);
    insert into status values(1,3,0);
    insert into status values(1,4,0);第一条是主任务,其余四条是子任务。
    我想要的结果就是update下面四条子任务时,主任务的状态也跟着变。
      

  4.   

    MYSQL触发器中无法对本表中的其它记录进行更新。