当前位置: 首页 > 面试题库 >

创建一个仅在创建新表时才运行的触发器

郑宇
2023-03-14
问题内容

我知道我可以使用它来创建DDL创建触发器;

CREATE OR REPLACE TRIGGER 
  create_table_trigger
  AFTER CREATE ON SCHEMA
DECLARE
BEGIN
END;

问题在于,该触发器将在“创建序列”之类的DDL上运行;如何仅对“创建表” DDL执行此操作?


问题答案:

CREATE OR REPLACE TRIGGER
create_table_trigger
AFTER CREATE ON SCHEMA
BEGIN
IF SYS.DICTIONARY_OBJ_TYPE = ‘TABLE’ THEN
....
END;


据我所知,dictionary_obj_type是TABLE | SEQUENCE | PROCEDURE | INDEX | FUNCTION |
TYPE | PACKAGE之一

而dictionary_obj_name只是表/序列/ proc / etc的名称。

  • dictionary_obj_type 返回在其上触发触发器的DDL操作发生的字典对象的类型。
  • dictionary_obj_name html" target="_blank">返回在其上触发触发器的DDL操作发生的词典对象的名称。


 类似资料:
  • 问题内容: 我已经阅读了有关创建触发器的Oracle文档,并且正在按照显示的方式进行操作,但是这是行不通的。我的目标是使用出现在TPM_TRAININGPLAN表中的最小STARTDATE更新TPM_PROJECT表。因此,每次有人更新TPM_TRAININGPLAN中的STARTDATE列时,我都想更新TPM_PROJECT表。这是我正在尝试的方法: 创建的触发器没有错误,但是我得到了警告: 当

  • WordPress有一个管理仪表板。在仪表板中,我们可以作为管理员添加新用户。我想在管理员添加新用户时在MySQL中创建一个表。例如,我创建了一个名为John Smith的用户,其用户名为user1;当我成功添加该用户时,将在名为user1的数据库中创建一个表。

  • 本文向大家介绍dart 创建一个新列表,包括了dart 创建一个新列表的使用技巧和注意事项,需要的朋友参考一下 示例 列表可以通过多种方式创建。 推荐的方法是使用List文字: 该List构造可以作为很好: 如果您喜欢更强的键入,还可以通过以下方式之一提供类型参数: 为了创建一个小的可增长列表,该列表为空或包含一些已知的初始值,首选文字形式。对于其他种类的列表,有专门的构造函数: 另请参阅关于集合

  • 主要内容:基本语法,创建 BEFORE 类型触发器,创建 AFTER 类型触发器触发器是与 MySQL 数据表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性。 基本语法 在 MySQL 5.7 中,可以使用 CREATE TRIGGER 语句创建触发器。 语法格式如下: CREATE <触发器名> < BEFORE | AFTER > <INSERT | UPDATE | DELETE > ON <

  • 进入函数详情页,点击“触发器”标签,展示当前函数配置的触发器,点击“创建新触发器”,选择HttpTrigger,填写对应信息。 路径映射必须以“/”开头,可以选择以GET或POST方法触发函数。 创建触发器后,触发器详情页面可对触发器进行修改及删除的操作,点击下图所示图标,可以获得HTTPS URL,通过该URL在浏览器或终端直接访问,触发Hello World函数。