PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL тригер за динамично генериране на кодове за множество таблици

Бих бил много ентусиазиран да бъда показан грешно (от време на време аз също имам нужда от това), но най-добре, което знам, препращането към имена на колони с помощта на променливи е един от онези случаи, в които всъщност трябва да използвате PL/C тригери, а не PL/ PgSQL тригери. Ще намерите примери за такива тригери в contrib/spi и в PGXN.

Друга възможност е да наименувате колоните си последователно, за да можете да ги препращате директно, напр. NEW.tenant_code .

Лично аз обикновено в крайна сметка пиша функция, която създава тригера:

create function create_tg_stuff(_table regclass, _args[] text[])
  returns void as $$
begin
  -- explore pg_catalog a bit
  execute $x$
  create function $x$ || quote_ident(_table || '_tg_stuff') || $x$()
    returns trigger as $t$
  begin
    -- more stuff
    return new;
  end;
  $t$ language plpgsql;
  $x$;
end;
$$ language plpgsql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Избройте безвъзмездни средства и привилегии за материализиран изглед в PostgreSQL

  2. Автоматично нарастване на PostgreSQL

  3. стойността е твърде дълга за типа character varying(255) за дължина 100 000

  4. Как трябва да използвам Postgresql docker изображение/контейнер?

  5. PostGIS еквивалент на ArcMap Union