Postgresql 删除的对象:默认值。用于public.obce.id 注意:删除表删除对象:表约束公共_obce_pkey on public.obce 注意:DROP TABLE DROP object:index public.\u obce\u pkey public.\u obce\u pkey 注意:拖放表拖放对象:物化视图public.obce_stredocesky_kraj public.obce_stredocesky_kraj 注意:DROP TABLE DROP object:index public.obce_stredocesky_kraj_nazev_idx public.obce_stredocesky_kraj_nazev_idx 注意:放置表放置的对象:键入public.obce_stredocesky_kraj public.obce_stredocesky_kraj 注意:放置表放置的对象:键入public.\u obce\u stredocesky\u kraj public.obce\u stredocesky\u kraj[] 注意:删除表删除对象:规则。public.obce_stredocesky_kraj上的“返回” 注意:拖放表拖放对象:类型public.obce public.obce 注意:DROP TABLE DROP object:类型public.\u obce public.obce[] 升降台
看Postgresql 删除的对象:默认值。用于public.obce.id 注意:删除表删除对象:表约束公共_obce_pkey on public.obce 注意:DROP TABLE DROP object:index public.\u obce\u pkey public.\u obce\u pkey 注意:拖放表拖放对象:物化视图public.obce_stredocesky_kraj public.obce_stredocesky_kraj 注意:DROP TABLE DROP object:index public.obce_stredocesky_kraj_nazev_idx public.obce_stredocesky_kraj_nazev_idx 注意:放置表放置的对象:键入public.obce_stredocesky_kraj public.obce_stredocesky_kraj 注意:放置表放置的对象:键入public.\u obce\u stredocesky\u kraj public.obce\u stredocesky\u kraj[] 注意:删除表删除对象:规则。public.obce_stredocesky_kraj上的“返回” 注意:拖放表拖放对象:类型public.obce public.obce 注意:DROP TABLE DROP object:类型public.\u obce public.obce[] 升降台,postgresql,plpgsql,Postgresql,Plpgsql,看 谢谢,非常有趣,但我需要删除的表的名称,现在不支持TG_OBJECTNAME!将来,我将使用ign事件触发器修改我的函数。现在我发现allow_system_table_mods=on可以添加到postgres.conf,但您如何告诉我这不是一个正确的模式:-(如果我只在创建触发器时激活它,然后禁用它,那么触发器的工作原理是一样的?@user3297525:删除的表名是已知的-请参阅更新的replyok,但删除的表不能移动到另一个模式(alter table t set schema
CREATE OR REPLACE FUNCTION foo() RETURNS void AS $$
DECLARE
BEGIN
EXECUTE 'CREATE TABLE pg_catalog.tab(a integer)';
RETURN;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION a() RETURNS void AS $$
DECLARE
BEGIN
EXECUTE 'CREATE TRIGGER "tt_drop" BEFORE DELETE ON pg_catalog.pg_tables EXECUTE PROCEDURE public.b()';
RETURN;
END;
$$ LANGUAGE plpgsql;
CREATE FUNCTION test_event_trigger_for_drops()
RETURNS event_trigger LANGUAGE plpgsql AS $$
DECLARE
obj record;
BEGIN
FOR obj IN SELECT * FROM pg_event_trigger_dropped_objects()
LOOP
RAISE NOTICE '% dropped object: % %.% %',
tg_tag,
obj.object_type,
obj.schema_name,
obj.object_name,
obj.object_identity;
END LOOP;
END
$$;
CREATE EVENT TRIGGER test_event_trigger_for_drops
ON sql_drop
EXECUTE PROCEDURE test_event_trigger_for_drops();
postgres=# DROP TABLE obce CASCADE;
NOTICE: drop cascades to materialized view obce_stredocesky_kraj
NOTICE: DROP TABLE dropped object: table public.obce public.obce
NOTICE: DROP TABLE dropped object: index public.obce_okres_id_idx public.obce_okres_id_idx
NOTICE: DROP TABLE dropped object: table constraint public.<NULL> obce_okres_id_fk on public.obce
NOTICE: DROP TABLE dropped object: trigger <NULL>.<NULL> "RI_ConstraintTrigger_a_46471" on public.okresy
NOTICE: DROP TABLE dropped object: trigger <NULL>.<NULL> "RI_ConstraintTrigger_a_46472" on public.okresy
NOTICE: DROP TABLE dropped object: trigger <NULL>.<NULL> "RI_ConstraintTrigger_c_46473" on public.obce
NOTICE: DROP TABLE dropped object: trigger <NULL>.<NULL> "RI_ConstraintTrigger_c_46474" on public.obce
NOTICE: DROP TABLE dropped object: sequence public.obce_id_seq public.obce_id_seq
NOTICE: DROP TABLE dropped object: type public.obce_id_seq public.obce_id_seq
NOTICE: DROP TABLE dropped object: default value <NULL>.<NULL> for public.obce.id
NOTICE: DROP TABLE dropped object: table constraint public.<NULL> _obce_pkey on public.obce
NOTICE: DROP TABLE dropped object: index public._obce_pkey public._obce_pkey
NOTICE: DROP TABLE dropped object: materialized view public.obce_stredocesky_kraj public.obce_stredocesky_kraj
NOTICE: DROP TABLE dropped object: index public.obce_stredocesky_kraj_nazev_idx public.obce_stredocesky_kraj_nazev_idx
NOTICE: DROP TABLE dropped object: type public.obce_stredocesky_kraj public.obce_stredocesky_kraj
NOTICE: DROP TABLE dropped object: type public._obce_stredocesky_kraj public.obce_stredocesky_kraj[]
NOTICE: DROP TABLE dropped object: rule <NULL>.<NULL> "_RETURN" on public.obce_stredocesky_kraj
NOTICE: DROP TABLE dropped object: type public.obce public.obce
NOTICE: DROP TABLE dropped object: type public._obce public.obce[]
DROP TABLE