テーブルが作成されるたびに実行されるevent trigger
を作成しようとしています。 このとき、作成されたテーブルの名前をテーブル(2列のid
とtablename
)に挿入したいと思います。ドキュメントを読む私はテーブル名を取得する方法を見つけることができません。作成したテーブル名を取得
CREATE OR REPLACE FUNCTION insert_layer()
RETURNS event_trigger
AS $$
DECLARE r RECORD;
BEGIN
RAISE NOTICE 'event for % ', tg_tag;
-- I would like to execute this
--EXECUTE format('INSERT INTO "public.Layers"(name) VALUES(' || tableNameHere || ')') INTO result;
END;
$$
LANGUAGE plpgsql;
CREATE EVENT TRIGGER insert_layer_event ON ddl_command_start
WHEN TAG IN ('CREATE TABLE')
EXECUTE PROCEDURE insert_layer();
'ddl_command_end'のトリガでは、' 'pg_event_trigger_ddl_commands'関数(https://www.postgresql.org/docs/current/static/functions-event-triggers.html)を使用することができます:' 'RAISE INFO 'テーブル:% '、(pg_event_trigger_ddl_commands())。object_identity; ' – Abelisto
ありがとうございます!あなたが答えを書くなら、私は受け入れます! =) –