Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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_Mysql Workbench_Workbench - Fatal编程技术网

在MYSQL中通过触发器从另一个表插入值

在MYSQL中通过触发器从另一个表插入值,mysql,triggers,mysql-workbench,workbench,Mysql,Triggers,Mysql Workbench,Workbench,我需要创建一个触发器当一条新记录被添加到计划表中时,一条记录会在结果表中自动创建。 表平面包含以下列: 智能服务 雇员 群体 日期 类型varchar 表结果包含以下列: 智能服务 雇员 IdClient 日期 结果varchar 但是idClient必须取自表Clients,对应于添加到计划中的组号。因此,触发器应该在结果表中创建多行,而不是一行,因为一个组中可能有多个客户机 我附加了我的代码,但显然有一个错误 CREATE DEFINER=CURRENT_USER TRIGGER`mydb`

我需要创建一个触发器当一条新记录被添加到计划表中时,一条记录会在结果表中自动创建。 表平面包含以下列:

智能服务 雇员 群体 日期 类型varchar 表结果包含以下列:

智能服务 雇员 IdClient 日期 结果varchar 但是idClient必须取自表Clients,对应于添加到计划中的组号。因此,触发器应该在结果表中创建多行,而不是一行,因为一个组中可能有多个客户机 我附加了我的代码,但显然有一个错误

CREATE DEFINER=CURRENT_USER TRIGGER`mydb`.`Plan_AFTER_INSERT`AFTER INSERT ON`Plan`针对每一行 开始 插入结果、idClient、日期、idService、idEmployee 值“ofППрцСц”,idClient=从客户机中选择idClient 其中Clients.Groupe=Plan.New.Groupe, NEW.Date,NEW.idService,NEW.idEmployee; 终止
只要子查询只返回一行就可以了,所以最好限制它

DELIMITER //
CREATE DEFINER = CURRENT_USER TRIGGER `mydb`.`Plan_AFTER_INSERT` AFTER INSERT ON `Plan` FOR EACH ROW
BEGIN
insert into results (Result, idClient, Date, idService, idEmployee)
 values ('в процессе',(Select idClient from Clients
where Clients.Groupe = New.Groupe ORDER BY idClient LIMIT 1),
NEW.Date, NEW.idService, NEW.idEmployee);
END//
DELIMITER ;

只要子查询只返回一行就可以了,所以最好限制它

DELIMITER //
CREATE DEFINER = CURRENT_USER TRIGGER `mydb`.`Plan_AFTER_INSERT` AFTER INSERT ON `Plan` FOR EACH ROW
BEGIN
insert into results (Result, idClient, Date, idService, idEmployee)
 values ('в процессе',(Select idClient from Clients
where Clients.Groupe = New.Groupe ORDER BY idClient LIMIT 1),
NEW.Date, NEW.idService, NEW.idEmployee);
END//
DELIMITER ;

错误1452:1452:无法添加或更新子行:外键约束使mydb失败。结果,约束fk_结果_客户端_idClient外键idClient引用客户端idClient SQL语句:插入mydb。计划日期,组,类型,idService,idEmployee值'2020-01-15','2','Маааа-Мааааааааа,“1”@AngelinaMat我改变了我的答案,测试一下它是否有效!谢谢!!!!是否可以将多条记录添加到结果表中,添加的人数与组中的人数相同?错误1452:1452:无法添加或更新子行:外键约束失败mydb.results,约束fk\u results\u Clients\u idClient外键idClient REFERENCES Clients idClient SQL语句:INSERT INTO mydb.Plan Date,组,类型,idService,ideEmployee值'2020-01-15','2','Мааааааааааааааааа!谢谢!!!!是否可以使结果表中添加的记录数量与组中的人数相同?