标签: ddl-trigger

在创建表时执行触发器

我想知道在创建表时是否可以执行PostgreSQL系统表上的触发器

我需要在我的数据库的每个表上添加2个函数,我想动态地执行它

谢谢

postgresql triggers ddl-trigger

15
推荐指数
3
解决办法
4913
查看次数

SQL Server跟踪DDL CREATE USER

我正在尝试跟踪用户创建.我在许多帖子中查看了DDL触发器,但这些似乎只是跟踪对象,而不是用户.有没有办法跟踪/记录在SQL Server中创建或删除用户的时间?

sql-server ddl triggers ddl-trigger

4
推荐指数
1
解决办法
1750
查看次数

如何创建授予权限的Oracle触发器

我想做一些概念上简单的事情,但在现实中似乎要复杂得多.

基本上,每当为我们数据库中的几个用户创建一个新表时,我想授予一个角色的选择权限.基本上这个:

grant select on TABLENAME to READROLE;

到目前为止,我的触发器看起来像这样:

创建或替换触发器osmm_grant_on_creation

在OSMM.SCHEMA上创建之后

开始

    //grant goes here
Run Code Online (Sandbox Code Playgroud)

结束

问题是,我无法弄清楚如何通过获取新创建的表的名称并通过触发器将其引用到授权来将两者连接在一起.有什么建议?谢谢.

oracle triggers ddl-trigger

1
推荐指数
1
解决办法
1万
查看次数

oracle ddl trigger:在删除之前创建备份表

我想用ddl触发器(在放置之前)创建一个备份表,并遇到以下问题.

发生第一次丢弃时没关系:a_backup表包含丢弃表的数据.但为什么我不能放弃另一张桌子?

ORA-01031:权限不足



create table b (x number);
Run Code Online (Sandbox Code Playgroud)

- 表B已创建.

create table a (x number);
Run Code Online (Sandbox Code Playgroud)

- 表A已创建.

create table a_backup as select * from a where 1 = 0;
Run Code Online (Sandbox Code Playgroud)

- 表A_BACKUP已创建.

create or replace trigger a_backup_tr
    before drop
    on database
begin
    IF ora_dict_obj_name <> 'A' then
    null;
    ELSIF ora_dict_obj_name = 'A'
    and ora_dict_obj_owner = 'TRANEE' then
    insert into a_backup
    select * from a;
    ELSE null;
    end if;
end;
/
Run Code Online (Sandbox Code Playgroud)

- 触发A_BACKUP_TR编译


-- 1

drop table a;
Run Code Online (Sandbox Code Playgroud)

- 表A下降.


-- 2 …
Run Code Online (Sandbox Code Playgroud)

oracle triggers plsql ddl-trigger

1
推荐指数
1
解决办法
366
查看次数

标签 统计

ddl-trigger ×4

triggers ×4

oracle ×2

ddl ×1

plsql ×1

postgresql ×1

sql-server ×1