「トリガーを使用して外部キーを作成する」というステートメントで何を意図しているのかは明確ではありませんが、現在の問題はSELECT INTOです。 複数の結果を返すクエリでは使用できません。
SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id; 2つのテーブル間のすべての一致を返します。
teacherかどうかを確認しようとした場合 teacher_idが含まれています 新しいcontentで使用されている値 記録すると、JOIN句を完全に削除して、次のようにクエリできるようになります。
SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;