Skip to content

Reusing Existing Trigger Function #114

@gavar

Description

@gavar

I am currently using Entity Framework (EF) with PostgreSQL and have a basic trigger setup to assign an ID from a 1-to-1 table. The trigger function is generic and can be reused easily. Here is the current trigger creation setup:

CREATE FUNCTION "LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX"() RETURNS trigger as $LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX$
BEGIN
  IF NEW."Id" IS NULL THEN
    INSERT INTO "XXXX" ("Type") VALUES (TG_TABLE_NAME) RETURNING "Id" INTO NEW."Id";
  END IF;
RETURN NEW;
END;

$LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX$ LANGUAGE plpgsql;
CREATE TRIGGER LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX BEFORE INSERT ON "YYYY"
FOR EACH ROW EXECUTE PROCEDURE "LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX"();

Instead of defining a new function LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX for each table, I want to reuse an existing function LC_TRIGGER_BEFORE_INSERT__INSERT_XXXX. Ideally, the generated migration should look like this:

CREATE TRIGGER LC_TRIGGER_BEFORE_INSERT_YYYY__INSERT_XXXX BEFORE INSERT ON "YYYY"
FOR EACH ROW EXECUTE PROCEDURE "LC_TRIGGER_BEFORE_INSERT__INSERT_XXXX"();

Is there an option to configure migrations to reuse an existing trigger function instead of generating a new one for each table? If not, is there a recommended approach to achieve this behavior?

Thanks in advance for your help! 🚀

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions