数据库触发器举例分析
这篇文章主要讲解了“数据库触发器举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库触发器举例分析”吧!
我们维护一张客户表,这张表的内容在周六和周日不允许修改。这就是客户表:
CREATETABLEplch_customers(custnumINTEGER,custnameVARCHAR2(100))
我需要创建一个触发器来阻止周末对这张表的任何插入、修改和删除。我写了这些代码:
CREATEORREPLACETRIGGERplch_customers_maint_trg/*TEXT*/DECLAREBEGINIFTO_CHAR(SYSDATE,'DY','NLS_DATE_LANGUAGE=ENGLISH')IN('SAT','SUN')THENRAISE_APPLICATION_ERROR(-20000,'CustomersmaintainedMonday-Fridayonly.');ENDIF;END;/
哪些选项可用来取代文中的/*TEXT*/, 使得这个触发器不允许周末对plch_customers表执行任何DML操作,并且每个语句只触发一次?
(A)
BEFOREUPDATEONplch_customersFOREACHROWBEFOREINSERTONplch_customersFOREACHROWBEFOREDELETEONplch_customersFOREACHROW
SQL>CREATEORREPLACETRIGGERplch_customers_maint_trgBEFOREUPDATEONplch_customersFOREACHROWBEFOREINSERTONplch_customersFOREACHROWBEFOREDELETEONplch_customersFOREACHROWDECLAREBEGINIFTO_CHAR(SYSDATE,'DY','NLS_DATE_LANGUAGE=ENGLISH')IN('SAT','SUN')THENRAISE_APPLICATION_ERROR(-20000,'CustomersmaintainedMonday-Fridayonly.');ENDIF;END;ORA-04079:无效的触发器说明SQL>
(B)
BEFOREUPDATEONplch_customersBEFOREINSERTONplch_customersBEFOREDELETEONplch_customers
SQL>CREATEORREPLACETRIGGERplch_customers_maint_trgBEFOREUPDATEONplch_customersBEFOREINSERTONplch_customersBEFOREDELETEONplch_customersDECLAREBEGINIFTO_CHAR(SYSDATE,'DY','NLS_DATE_LANGUAGE=ENGLISH')IN('SAT','SUN')THENRAISE_APPLICATION_ERROR(-20000,'CustomersmaintainedMonday-Fridayonly.');ENDIF;END;ORA-04079:无效的触发器说明SQL>
(C)
BEFOREUPDATE,INSERTORDELETEONplch_customers
SQL>CREATEORREPLACETRIGGERplch_customers_maint_trgBEFOREUPDATE,INSERTORDELETEONplch_customersDECLAREBEGINIFTO_CHAR(SYSDATE,'DY','NLS_DATE_LANGUAGE=ENGLISH')IN('SAT','SUN')THENRAISE_APPLICATION_ERROR(-20000,'CustomersmaintainedMonday-Fridayonly.');ENDIF;END;ORA-00969:缺失ON关键字SQL>
(D)
BEFOREUPDATEORINSERTORDELETEONplch_customersFOREACHROW
SQL>TriggercreatedSQL>
(E)
BEFOREUPDATEORINSERTORDELETEONplch_customers
SQL>TriggercreatedSQL>
答案E
D不是答案因为每行都会触发,不满足条件。
感谢各位的阅读,以上就是“数据库触发器举例分析”的内容了,经过本文的学习后,相信大家对数据库触发器举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。