千家信息网

数据库触发器举例分析

发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,这篇文章主要讲解了"数据库触发器举例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"数据库触发器举例分析"吧!我们维护一张客户表,这张表的内容在周六
千家信息网最后更新 2025年11月11日数据库触发器举例分析

这篇文章主要讲解了"数据库触发器举例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"数据库触发器举例分析"吧!

我们维护一张客户表,这张表的内容在周六和周日不允许修改。这就是客户表:

CREATE TABLE plch_customers(   custnum    INTEGER, custname   VARCHAR2 (100))

我需要创建一个触发器来阻止周末对这张表的任何插入、修改和删除。我写了这些代码:

CREATE OR REPLACE TRIGGER plch_customers_maint_trg   /*TEXT*/DECLAREBEGIN   IF TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH')         IN ('SAT', 'SUN')   THEN      RAISE_APPLICATION_ERROR (-20000          , 'Customers maintained Monday-Friday only.');   END IF;END;/

哪些选项可用来取代文中的/*TEXT*/, 使得这个触发器不允许周末对plch_customers表执行任何DML操作,并且每个语句只触发一次?

(A)

BEFORE UPDATE ON plch_customers FOR EACH ROWBEFORE INSERT ON plch_customers FOR EACH ROWBEFORE DELETE ON plch_customers FOR EACH ROW
SQL> CREATE OR REPLACE TRIGGER plch_customers_maint_trgBEFORE UPDATE ON plch_customers FOR EACH ROWBEFORE INSERT ON plch_customers FOR EACH ROWBEFORE DELETE ON plch_customers FOR EACH ROWDECLAREBEGIN   IF TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH')         IN ('SAT', 'SUN')   THEN      RAISE_APPLICATION_ERROR (-20000          , 'Customers maintained Monday-Friday only.');   END IF;END;ORA-04079: 无效的触发器说明SQL>

(B)

BEFORE UPDATE ON plch_customersBEFORE INSERT ON plch_customersBEFORE DELETE ON plch_customers
SQL> CREATE OR REPLACE TRIGGER plch_customers_maint_trgBEFORE UPDATE ON plch_customersBEFORE INSERT ON plch_customersBEFORE DELETE ON plch_customersDECLAREBEGIN   IF TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH')         IN ('SAT', 'SUN')   THEN      RAISE_APPLICATION_ERROR (-20000          , 'Customers maintained Monday-Friday only.');   END IF;END;ORA-04079: 无效的触发器说明SQL>

(C)

BEFORE UPDATE, INSERT OR DELETE ON plch_customers
SQL> CREATE OR REPLACE TRIGGER plch_customers_maint_trgBEFORE UPDATE, INSERT OR DELETE ON plch_customersDECLAREBEGIN   IF TO_CHAR (SYSDATE, 'DY', 'NLS_DATE_LANGUAGE=ENGLISH')         IN ('SAT', 'SUN')   THEN      RAISE_APPLICATION_ERROR (-20000          , 'Customers maintained Monday-Friday only.');   END IF;END;ORA-00969: 缺失 ON 关键字SQL>

(D)

BEFORE UPDATE OR INSERT OR DELETE ON plch_customers FOR EACH ROW
SQL> Trigger createdSQL>

(E)

BEFORE UPDATE OR INSERT OR DELETE ON plch_customers
SQL> Trigger createdSQL>

答案E

D不是答案因为每行都会触发,不满足条件。

感谢各位的阅读,以上就是"数据库触发器举例分析"的内容了,经过本文的学习后,相信大家对数据库触发器举例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

触发器 数据 数据库 分析 内容 学习 客户 就是 答案 代码 关键 关键字 思路 情况 文章 更多 条件 知识 知识点 篇文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 编程软件开发属于什么专业 ca服务器配置与管理 数据库可视化界面 资兴网络安全 北京糖豆互联网科技有限公司 正泰网络技术与正泰建筑 药品溶出数据库 vnc里面能装数据库工具吗 软件开发服务工作规划与措施 广州知商互联网科技有限公司破产 叶满杭软件开发 江西本科哪些是软件开发 西青区应用软件开发报价价钱 idc服务器需要同相电吗 数据库多表连接可以a=b=c吗 丰台区自制软件开发特点 怎样创建sqlite数据库 互联网高科技类公司分红多少 网络舆情网络安全 政法单位网络安全的整体状况判断 论文查重会存数据库吗 网络安全法 对直接负责的 sql数据库能不能多开 软件开发前三个月没有工资 福州市水利局网络安全 严格落实网络安全法 区块链服务网络技术白皮书 西安匠之作网络技术有限公司电话 德州网络技术有限公司 电话 惠州小程序软件开发
0