sql - 为 dbms 编写触发器
问题描述
我不知道该怎么办。
如果学士学位不是 BCA 或 BCA 百分比小于 60,则编写不允许申请工作的触发器。使用下表。申请人(姓名、学士、通过年限、百分比)
解决方案
首先,这里不需要触发器。
您可以CHECK
按如下方式使用约束:
ALTER TABLE Applicant
ADD CONSTRAINT CHECK (BachelorDegree <> 'BCA' OR Percentage > 60);
如果您真的想要一个触发器,那么您可以按如下方式使用TRIGGER
withWHEN
子句(此解决方案假定当percentage
orBachelorDegree
为空时,它应该允许添加数据。如果这不是您的要求,那么您可以在WHEN
子句中相应地添加条件):
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;
/
推荐阅读
- css - Internet Explorer 上的文本装饰
- c++ - 如何从 .txt 文件中获取数据?
- arrays - AWK 通过在特定列上拆分字符串以匹配 bash 中的另一个数组来对数组进行排序
- apache-kafka - 我可以在另一个集群中复制已经复制的 Kafka 主题吗?
- javascript - failed to set the 'value' property on 'HTMLInputElement' in reactive form
- spring-boot - 通过在运行时传递序列按顺序运行服务的 Spring Boot 应用程序
- python - 三维数组作为向量和矩阵的乘法
- azure - azure api管理:有没有办法在入站策略中获取操作名称
- android - 如果 APK 已签名,Google Drive REST API AppDataFolder 不起作用
- css - 如何修复我的 .woff 网络字体以显示在我们的网站上?