mysql:在另一行插入后触发创建n行

时间:2016-10-24 10:06:01

标签: mysql sql triggers

我使用的是mysql和phpmyadmin,我在mysql数据库中有两个表:

  

job(ID int,milestones int,description VARCHAR(50))   这将存储一份工作及其里程碑的数量和该工作的描述

第二个表是:

  

里程碑(ID int,jobID - 将作业ID引用为外键,描述VARCHAR(50))

我想要的是创建每个作业插入的触发器,所以如果我插入一个有2个里程碑的作业,我想在里程碑表中创建2行。

例如:

INSERT INTO `job`(`ID`, `name`, `mileStones`)
VALUES (1,'its a good project',2);

我想在里程碑表中自动创建2行,如下所示:

1,1, '里程碑的'

2,1, '里程碑的'

我所做的是我遵循了一些问题: this我想出了这段代码

 DELIMITER //
 CREATE TRIGGER job_after_insert AFTER INSERT ON job
 FOR EACH ROW
 BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE (i<=NEW.milestones) DO
            INSERT INTO milestones(ID, jobID, description) VALUES   ( i      ,NEW.ID,'milestone')
    END WHILE;
 END; //
 DELIMITER ;

当我在作业中插入一行时,出现以下错误:

  

#1442 - 无法更新存储函数/触发器中的表'job',因为它已被调用此存储函数/触发器的语句使用。

你能解释一下这种方法有什么问题吗?

0 个答案:

没有答案