CREATE TABLE `proyecto` (
`COD_PROY` int(11) NOT NULL,
`NOMBRE` varchar(50) DEFAULT NULL,
`PRES_PROY` varchar(10) DEFAULT NULL,
`PRES_SUP` varchar(10) DEFAULT NULL,
PRIMARY KEY (`COD_PROY`)
);
CREATE TABLE `departamentos` (
`COD_DEP` varchar(10) NOT NULL,
`NOMBRE` varchar(10) DEFAULT NULL,
`CIUDAD` varchar(10) DEFAULT NULL,
`PRESUPUESTO` int(11) DEFAULT NULL,
PRIMARY KEY (`COD_DEP`)
);
INSERT INTO departamentos (COD_DEP, NOMBRE, CIUDAD, PRESUPUESTO) VALUES ('DEP001', 'DEFAULT', 'DEFAULT', 0);
COMMIT;
CREATE TABLE `empleados` (
`COD_EMP` int(11) NOT NULL,
`DNI` varchar(10) DEFAULT NULL,
`NOMBRE` varchar(10) DEFAULT NULL,
`DIR` varchar(50) DEFAULT NULL,
`SUELDO` int(11) DEFAULT NULL,
`COMISION` int(11) DEFAULT NULL,
`DEPARTAMENTO` varchar(10) DEFAULT NULL,
PRIMARY KEY (`COD_EMP`),
KEY `DEPARTAMENTO` (`DEPARTAMENTO`),
CONSTRAINT `empleados_ibfk_1` FOREIGN KEY (`DEPARTAMENTO`) REFERENCES `departamentos` (`COD_DEP`)
);
CREATE TABLE `trabaja` (
`COD_EMP` int(11) NOT NULL,
`COD_PROY` int(11) NOT NULL,
`FECHA_INI` date DEFAULT NULL,
`FECHA_FIN` date DEFAULT NULL,
`FUNCION` varchar(10) NOT NULL,
UNIQUE KEY `COD_EMP` (`COD_EMP`,`COD_PROY`,`FUNCION`),
KEY `FK_COD_PROY` (`COD_PROY`),
CONSTRAINT `FK_COD_EMP` FOREIGN KEY (`COD_EMP`) REFERENCES `empleados` (`COD_EMP`) ON DELETE CASCADE,
CONSTRAINT `FK_COD_PROY` FOREIGN KEY (`COD_PROY`) REFERENCES `proyecto` (`COD_PROY`)
);
CREATE TRIGGER departamentos_before_delete
BEFORE DELETE
ON departamentos FOR EACH ROW
BEGIN
UPDATE empleados set DEPARTAMENTO = 'DEP001'
WHERE DEPARTAMENTO = OLD.COD_DEP;
END;