Search code examples
jsonpostgresqltriggersjsonbdatabase-trigger

Trigger to create record from JSON object in PostgreSQL


Concept: a trigger what creates a new record in a table after a new JSON object has been created in another table. I don't want to make any modifications yet, just to "convert" JSON objects to records with a trigger.


Solution

  • Use the function jsonb_populate_record() in the trigger function, e.g.

    create or replace function json_input_trigger()
    returns trigger language plpgsql as $$
    begin
        insert into main_table
        select *
        from jsonb_populate_record(null::main_table, new.data);
        return new;
    end $$;
    

    Fully working example.