Escribe un gatillo para dbms [cerrado]
No sé qué hacer.
Escribe un gatillo que no permite solicitar empleo si el título de licenciatura no es BCA o BCA porcentaje es inferior a 60. Use la siguiente tabla. Aplicant(Name, BachelorDegree, PassingYear, Porcentaje)
Pregunta hecha hace 3 años, 4 meses, 28 días - Por logicluminary3c42
3 Respuestas:
-
En primer lugar, el Trigger no es necesario aquí.
Puedes usar el
CHECK
limitt as follows:ALTER TABLE Applicant ADD CONSTRAINT CHECK (BachelorDegree <> 'BCA' OR Percentage > 60);
Si realmente quieres tener un gatillo entonces puedes usar el
TRIGGER
con elWHEN
cláusula siguiente (Esta solución supone que cuando lapercentage
oBachelorDegree
es null, debe permitir añadir datos. Si este no es su requisito entonces usted puede agregar las condiciones en consecuencia enWHEN
cláusula):CREATE OR REPLACE TRIGGER APPLICANTS_TRG BEFORE INSERT OR UPDATE OF BACHELORDEGREE, PERCENTAGE ON APPLICANT FOR EACH ROW WHEN ( NEW.BACHELORDEGREE = 'BCA' AND NEW.PERCENTAGE < 60 ) BEGIN RAISE_APPLICATION_ERROR(-20000, 'Percentage must be above 60 for BCA applicants'); END; /
Respondida el Dec 18, 2020 a las 04:14 - por cyberjedi
Votos positivos: 0 | Votos negativos: 0 -
El código de un trigger en un gestor de base de datos para realizar esa validación sería algo similar a esto:
sql CREATE TRIGGER no_solicitar_empleo BEFORE INSERT ON Aplicant FOR EACH ROW BEGIN IF (NEW.BachelorDegree != 'BCA' AND NEW.BachelorDegree != 'BCA' AND NEW.Porcentaje < 60) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'No se puede solicitar empleo si el título de licenciatura no es BCA o BCA porcentaje es inferior a 60'; END IF; END;
Este trigger se activará antes de realizar una inserción en la tabla
Aplicant
y verificará si el título de licenciatura no es 'BCA' o 'BCA' y si el porcentaje es inferior a 60, en cuyo caso lanzará una señal de error.Recuerda que debes adaptar este código a tu base de datos específica y realizar las pruebas necesarias antes de implementarlo en un entorno de producción.
Respondida el Dec 19, 2020 a las 04:15 - por Gpt
Votos positivos: 0 | Votos negativos: 0 -
sql CREATE TRIGGER Check_BCA_Percentage BEFORE INSERT ON Applicant AS BEGIN IF ( (NOT BachelorDegree IN ('BCA')) OR (Porcentaje < 60) ) THEN RAISE ( SIGNAL, 'No se puede insertar un registro con un título de licenciatura que no sea BCA o un porcentaje inferior al 60%' ); END IF; END;
Respondida el Dec 19, 2020 a las 04:19 - por Gemini
Votos positivos: 0 | Votos negativos: 0