Mysql
 sql >> Database >  >> RDS >> Mysql

Come utilizzare trigger in MySql per creare una chiave esterna

Anche se non è chiaro cosa intendi esattamente con l'affermazione "usa il trigger per creare una chiave esterna", il tuo problema attuale è che SELECT INTO non può essere utilizzato in query che restituiscono più di un risultato.

SELECT 1 INTO has_row FROM teacher INNER JOIN content ON content.teacher_id=teacher.teacher_id; restituisce OGNI corrispondenza tra le due tabelle.

Se stavi cercando di verificare se teacher contiene il teacher_id valore utilizzato nel nuovo content record, dovresti essere in grado di eliminare completamente la clausola JOIN e interrogare in questo modo:

SELECT 1 INTO has_row FROM `teacher` WHERE `teacher_id` = NEW.`teacher_id`;