使用错误的last_insert_id()触发

时间:2018-06-06 14:19:24

标签: mysql triggers last-insert-id

我试图创建一个用户可以作为运动员登录的应用程序,当作为运动员登录时,应该为该特定用户制定默认的训练计划。

当将运动员插入数据库时​​,应触发一个触发器,该触发器将自动为该特定用户创建默认训练计划。然而触发器不起作用。

我的触发器:

BEGIN
set @athleteId = (SELECT last_insert_id());

insert into training(
Date
,PlanGoal
,Executed)
VALUES (
now()
,"Spiermassa"
,0);

set @trainingid = (SELECT last_insert_id());

insert into athlete_has_training(
Athlete_Id,
Training_Id)
values(
@athleteId,
@trainingid);

insert into training_has_exercise(
Training_Id,
Exercise_Id)
values(
@trainingid,
4),(
@trainingid,
5),(
@trainingid,
6);

END

这是我的错误:

  

错误代码:1452。无法添加或更新子行:外键约束失败(' dbi382126'。' athlete_has_training',CONSTRAINT' fk_Athlete_has_Training_Athlete1' FOREIGN KEY(' Athlete_Id')参考'运动员'(' Id')暂停更新行动不再采取行动)

我认为问题在于set @athleteId = (SELECT last_insert_id()); 我目前正在使用MySql工作台。

0 个答案:

没有答案