Jul*_*ien 15 postgresql triggers ddl-trigger
我想知道在创建表时是否可以执行PostgreSQL系统表上的触发器
我需要在我的数据库的每个表上添加2个函数,我想动态地执行它
谢谢
Ali*_*Ali 13
我知道这是一个老问题,但现在已经在9.3版本中实现,或者至少部分在 http://www.postgresql.org/docs/9.3/static/event-trigger-definition.html中实现
这可以通过事件触发器完成:
CREATE OR REPLACE FUNCTION on_create_table_func()
RETURNS event_trigger AS $$
BEGIN
-- your code here
END
$$
LANGUAGE plpgsql;
CREATE EVENT TRIGGER
on_create_table ON ddl_command_end
WHEN TAG IN ('CREATE TABLE')
EXECUTE PROCEDURE on_create_table_func();
Run Code Online (Sandbox Code Playgroud)
请注意,无法直接在新创建的表上执行任何查询,甚至无法获取其名称.我不知道你在"每个表上添加2个函数"是什么意思,因为函数不属于特定的表,但如果你需要执行特定于新表的操作,这可能不适合你.
| 归档时间: |
|
| 查看次数: |
4913 次 |
| 最近记录: |