Tengo un ejercicio que me pide. Crear un trigger que al borrar una región borre todos los datos relacionados en el resto de tablas, es decir COUNTRIES, DEPARTMENTS, LOCATIONS y EMPLOYEES.
el trigger que he creado es el siguiente:
CREATE TRIGGER EJ7 BEFORE DELETE ON REGIONS FOR EACH ROWBEGIN DECLARE PRI_REGION FLOAT; DECLARE PRI_COUNTRIES CHAR(2); DECLARE PRI_LOCATIONS FLOAT; DECLARE PRI_DEPARTMENTS FLOAT; DECLARE PRI_EMPLOYEES FLOAT; SET PRI_REGION=OLD.REGION_ID; SET PRI_COUNTRIES=(SELECT COUNTRY_ID FROM COUNTRIES WHERE REGION_ID=PRI_REGION); SET PRI_LOCATIONS=(SELECT LOCATION_ID FROM LOCATIONS WHERE COUNTRY_ID=PRI_COUNTRIES); SET PRI_DEPARTMENTS=(SELECT DEPARTMENT_ID FROM DEPARTMENTS WHERE LOCATION_ID=PRI_LOCATIONS); SET PRI_EMPLOYEES=(SELECT EMPLOYEE_ID FROM EMPLOYEES WHERE DEPARTMENT_ID=PRI_DEPARTMENTS); DELETE FROM EMPLOYEES WHERE EMPLOYEE_ID=PRI_EMPLOYEES; DELETE FROM DEPARTMENTS WHERE DEPARTMENT_ID=PRI_DEPARTMENTS; DELETE FROM LOCATIONS WHERE LOCATION_ID=PRI_LOCATIONS; DELETE FROM COUNTRIES WHERE COUNTRY_ID=PRI_COUNTRIES;END:
Y al ejecutar un DELETE FROM REGIONS WHERE REGION_ID=1:ERROR 1242 (21000): Subquery returns more than 1 row
Como podría solucionar mi problema.