Ho letto questo article ma sembra non funzionare per la cancellazione. Ho ottenuto questo errore quando ha cercato di creare un trigger:Come scrivere un trigger per annullare l'eliminazione in MYSQL?
Executing SQL script in server
ERROR: Error 1363: There is no NEW row in on DELETE trigger
CREATE TRIGGER DeviceCatalog_PreventDeletion
BEFORE DELETE on DeviceCatalog
FOR EACH ROW
BEGIN
DECLARE dummy INT;
IF old.id = 1 or old.id =2 THEN
SELECT * FROM DeviceCatalog WHERE DeviceCatalog.id=NEW.id;
END IF;
END;
SQL script execution finished: statements: 4 succeeded, 1 failed
NEW.fieldname esiste quando si inserisce o si aggiorna un record; quando cancelli niente di nuovo arriva nel database !!! L'errore è chiaro: non è possibile utilizzare NEW.id perché NEW non è consentito in un trigger DELETE – Marco
Secondo l'articolo collegato la scelta della selezione dovrebbe fallire - la tua istruzione select si legge come una vera e non come la 'select into dummy 'dall'articolo destinato a fallire. – miherrma