¿Cómo crear un trigger que al eliminar una fila de una tabla, elimine una fila relacionada de otra tabla en mysql?

publicado por: Anonymous

Tengo 2 tablas: Empleados y Vendedores

La tabla Empleados contiene los campos

  • id_E
  • Nombre
  • Sueldo
  • Grupo_trabajo

Y la tabla Vendedores, esta referenciada a Empleados, los empleados que pertenezcan al grupo_trabajo = 6, son vendedores, esta tabla contiene los campos:

  • id_R
  • Nombre
  • Apellido
  • Empleados_id_E (Llave foránea)

Para poder eliminar un elemento de la tabla Empleados, se necesita borrar primero el elemento relacionado de la tabla Vendedores por la cuestion de la llave foránea.

Retomando el tema de la pregunta, ¿cómo sería el trigger para que al borrar un elemento de la tabla Empleados, elimine la fila relacionada de Vendedores?

solución

Si estás usando MySQL, podrías probar con este código. Lo acabo de chequear y funciona correctamente

CREATE TRIGGER `delete_empleado` AFTER DELETE ON `vendedores`
FOR EACH ROW BEGIN
    DELETE 
      FROM empleados
     WHERE empleados.id_e = old.id_e;
END

Lo que hace el código es “oir” los deletes de la tabla vendedores y para esas filas luego de haber sido eliminadas utilizar el id de empleado old.id_e para eliminarlo también de la tabla empleados.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *