Oppure fai la union delle due tabelle della when
PS ops forse hanno chiavi diverse.
Printable View
Oppure fai la union delle due tabelle della when
PS ops forse hanno chiavi diverse.
Quel codice in teoria è sicuramente giusto dato che è la soluzione di un esercizio... quindi in linea teoria puoi usare subquery nel when.
Un qualche programma che mi èermetta di fare trigger senza sbattermi di èproblemi diversi dallo scrivere il trigger giusto?
A parte che non è chiaro se stai studiando SQL o MYSQL.
Nel 1 caso la soluzione del tuo problema è usare una RULE e non un trigger.
Nel 2 caso MySQL da barbonaccio com'è non ti dà la possibilità quindi devi usare un trigger.
Non toccando MySQL da molto non so dirti perchè quella sintassi sia errata .. potrebbe essere la mancanza di Begin End ma non son sicuro.
Alternativamente però a quella soluzione potresti sostituire il blocco when /rollback con una banalissima DELETE sulla tua tabella che elimini l'elemento che hai appena inserito nel caso in cui non rispetti le 2 condizioni da te stabilite.
(ES: DELETE
FROM Iscrizioni as I
LEFT JOIN Studenti as S ON (S.matr=I.matrstud)
LEFT JOIN CorsiAnni as C ON (I.Corso = C.Codcors AND I.Anno=C.Anno)
WHERE I.id = New.ID
AND (S.id IS NULL OR C.id IS NULL)
)
PS:è confortante sapere che ogni volta che guardo nella documentazione di MySQL trovo qualche buon motivo per rinnovare il mio odio vs di lui :pokerfacen: