Tengo una tabla staff
con office
columna. Actualmente, la columna office
no acepta valores NULL. La aplicación que persiste en esta tabla tiene un error que significa que, cuando al personal no se le ha asignado una oficina, intenta insertar un valor NULO en la tabla.Disparo de MySQL antes Insertar valor Comprobando
me han pedido que se utiliza un disparador para interceptar el inserto en la mesa Staff
y comprobar si el valor es NULL office
y reemplazarlo con valor N/A
.
Debajo está mi intento hasta ahora, pero tengo error
en el intento de implementarlo. Alguna idea de como resolver esto.
CREATE TRIGGER staffOfficeNullReplacerTrigger BEFORE INSERT ON Staff
FOR EACH ROW BEGIN
IF (NEW.office IS NULL)
INSERT INTO Staff SET office="N/A";
END IF
END;
El error:
MySQL Database Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO Staff SET office="N/A"; END'
Por qué no cambia el esquema para que se permiten valores de 'null'? Esto es exactamente para lo que se debe usar 'NULL', ya que permite diferenciar entre una oficina y una oficina que tiene el valor de' N/A' (mientras que la solución propuesta no lo haría). – eggyal