通过 MYSQL 中的 TRIGGER 从另一个 table 插入值
inserting values from another table via a TRIGGER in MYSQL
我需要创建一个触发器当一个新的记录被添加到“计划”table,一个记录被自动创建在“结果”table。
Table“计划”有列:
- IdService
- 员工身份
- 集团
- 日期
- 类型 (varchar)
Table“结果”包含列:
- IdService
- 员工身份
- IdClient
- 日期
- 结果(可变字符)
但idClient必须取自table"Clients",对应加入计划的群号。因此,触发器不应在结果中创建一行,而是多行 table(因为一组中可以有多个客户端)
我附上了我的代码,但显然其中有错误
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 ('в процессе',idClient = (Select idClient from Clients
where Clients.Groupe = Plan.New.Groupe),
NEW.Date, NEW.idService, NEW.idEmployee);
END
没关系只是你的子查询只有一行return,所以最好限制一下
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 ;
我需要创建一个触发器当一个新的记录被添加到“计划”table,一个记录被自动创建在“结果”table。 Table“计划”有列:
- IdService
- 员工身份
- 集团
- 日期
- 类型 (varchar)
Table“结果”包含列:
- IdService
- 员工身份
- IdClient
- 日期
- 结果(可变字符) 但idClient必须取自table"Clients",对应加入计划的群号。因此,触发器不应在结果中创建一行,而是多行 table(因为一组中可以有多个客户端)
我附上了我的代码,但显然其中有错误
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 ('в процессе',idClient = (Select idClient from Clients
where Clients.Groupe = Plan.New.Groupe),
NEW.Date, NEW.idService, NEW.idEmployee);
END
没关系只是你的子查询只有一行return,所以最好限制一下
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 ;