我试图创建一个用户可以作为运动员登录的应用程序,当作为运动员登录时,应该为该特定用户制定默认的训练计划。
当将运动员插入数据库时,应触发一个触发器,该触发器将自动为该特定用户创建默认训练计划。然而触发器不起作用。
我的触发器:
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工作台。