I když není jasné, co přesně máte v úmyslu s příkazem "použít spouštěč k vytvoření cizího klíče", váš aktuální problém je, že SELECT INTO
nelze použít v dotazech, které vracejí více než jeden výsledek.
SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id;
vrátí KAŽDOU shodu mezi dvěma tabulkami.
Pokud jste se pokoušeli zkontrolovat, zda teacher
obsahuje teacher_id
hodnota použitá v novém content
záznamu, měli byste být schopni úplně vypustit klauzuli JOIN a dotazovat se takto:
SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;