Untitled

mail@pastecode.io avatar
unknown
mysql
3 years ago
1.4 kB
2
Indexable
Never
-- Agregar Columna rec_unidad_id_PK a recursos
ALTER TABLE recursos ADD COLUMN rec_unidad_id_fk SMALLINT(3) UNSIGNED NOT NULL ;
DELETE FROM recursos;
ALTER TABLE recursos ADD CONSTRAINT `FK_recursos_unidad` FOREIGN KEY (`rec_unidad_id_fk`) REFERENCES unidades (`unidad_id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
-- Creacion Procedimiento
DELIMITER //
CREATE /*DEFINER=`u995095518_pruebasback1`@`%`*/ PROCEDURE pa_insertar_manual_competencias(enlace_recurso VARCHAR(30), perfil_id SMALLINT(5),unidad_id SMALLINT(3))
BEGIN
	-- Validacion
	DECLARE perfil_existe, unidad_existe SMALLINT DEFAULT 0;
    SELECT COUNT(*) INTO perfil_existe FROM perfiles_sub_areas p WHERE p.perfil_id=perfil_id;
    SELECT COUNT(*) INTO unidad_existe FROM unidades u WHERE u.unidad_id=unidad_id;
    
    IF NOT perfil_existe THEN SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'El perfil pasado no existe en la BD';
    ELSEIF NOT unidad_existe THEN SIGNAL SQLSTATE '02000' SET MESSAGE_TEXT = 'La unidad pasada no existe en la BD';
    END IF;
    
    -- Logica principal
	INSERT INTO `recursos` (`rec_nombre`, `rec_enlace`, `rec_categoria_id_pk`, `rec_perfil_id_pk`, `rec_subarea_id_pk`, `rec_area_id_pk`, `rec_unidad_id_fk`) VALUES
	('manual competencias', enlace_recurso, 1, perfil_id, NULL, NULL,unidad_id);
END //
DELIMITER ;
-- TEST
CALL pa_insertar_manual_competencias ('http:google.driasdfasdfve.com',1,1)