次の属性を持つ「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行目に構文エラーが発生します。これに対する修正はありますか?または、この機能を実現する他の方法はありますか?