千家信息网

数据库触发器举例分析

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

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

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

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安全错误 数据库的锁怎样保障安全 江苏c语言软件开发哪家专业 小程序云开发数据库安全性 自由表转换为数据库表的命令 金山区网络软件开发协议 戴尔服务器410拆解 湖南数据软件开发价格监测中心 蓝鸽的软件开发工程师怎么样 cmd服务器命令 犬夜叉觉醒数据库操作 国家网络安全博览会安排 rabbitmq是数据库吗 软件开发用什么工具比较快 重庆苹果软件开发怎么样 服务器网口nic和mgmt gencode数据库怎么使用 软件开发公司产品流程 重庆软件开发定制要多少钱 怎样开发数据库管理系统 使命召唤战区是哪个服务器的 宝山区个人软件开发报价信息中心 医学影像软件开发商 中国最好的网络安全实验室 无线网络技术导论课后答案 桃子互联网科技 hana是多维数据库吗 数据库查找重复数字软件 5g对网络安全影响 wg饥荒联机没有服务器 linux数据库修改大小写 中国台湾超频服务器厂家现货
0