有一个名为“Coach”的 MySQL 表,它具有以下属性。
coach_ID int
mileage_of_last_service_date double
mileage double
isAvailable boolean
对于所有行,isAvailable 最初设置为 1。我想设置一个执行以下操作的触发器。当里程属性发生更新并且里程大于 100000 时,触发器必须为同一张表的该特定属性设置属性,如下所示。
isAvailable = 0
mileage_of_last_service_date = mileage_of_last_service_date + mileage
mileage = 0
这是我写的查询。
create trigger set_availability_coach after update on coach
for each row
when old.mileage > 10000
begin
update coach
set isAvailable = 0, mileage_of_last_service_date = mileage_of_last_service_date + old.mileage, mileage = 0
where coach.coach_ID = old.coach_ID;
end;
当我运行它时,我在第 3 行得到一个语法错误。有解决办法吗?或者任何其他方式来实现这个功能?