我使用的是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',因为它已被调用此存储函数/触发器的语句使用。
你能解释一下这种方法有什么问题吗?