データベースに次の3つの(InnoDB-)テーブルがありMySQL
ます。
Entity (DLID)
Category (CatID, CatName)
hasCategory (DLID, CatID)
ここで、テーブルに挿入するときに、それぞれが少なくとも1つに関連付けられてhasCategory
いることを確認したいと思います。したがって、私は次のトリガーを作成しました。Entity
Category
delimiter |
create trigger Max before insert on hasCategory for each row begin
if (exists (select distinct DLID from Entity where not exists (select distinct new.DLID from new))) then
signal sqlstate '45000'
set message_text = 'Min of 1 category per entity required';
end if;
end|
delimiter ;
ここで、次のクエリを実行するとinsert into hasCategory values (1, 1);
、エラーが発生しますerror code 1146: table mydb.new does not exist
。これに似た他のトリガーをいくつか作成しました。これも新しいテーブルを参照しており、完全に機能しました。それでも、この特定のトリガーでエラーが発生する原因はわかりません。
select
ステートメントが問題を引き起こす可能性はありますか?プロシージャで有効なステートメントのみを読みましたがselect into
、これがこれと関係があるかどうかはわかりません。
ご協力いただきありがとうございます!