He leído esto article pero parece que no funciona para eliminarlo. Tengo este error al tratado de crear un disparador:¿Cómo escribir un disparador para cancelar la eliminación en 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.nombre de campo existe cuando inserta o actualiza un registro; cuando borras nada, viene nuevo a la base de datos. El error es claro: no puede usar NEW.id porque NO está permitido en un desencadenador DELETE – Marco
Según el artículo vinculado, la declaración seleccionada debe fallar: su instrucción de selección se lee como real y no como la opción 'seleccionar en el maniquí 'del artículo que está destinado a fallar. – miherrma