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

Приложете една процедура за задействане към много различни таблици

Можете да намерите пример за създаване на тригер с динамичен SQL с помощта на PL/PgSQL в Тригера за проверка пример за PostgreSQL. Същият подход ще работи с всеки друг DDL.

Вижте функцията audit.audit_table и използване на format и EXECUTE там.

Въпреки това необходимостта от процедурно създаване на таблици може да бъде (но не винаги) знак за съмнителен дизайн на схема.

Прост пример за динамично SQL създаване на таблица:

CREATE OR REPLACE FUNCTION demo_dynamic_table(tablename text) RETURNS void AS $$                                                                                      
BEGIN                                                                                                                                                                          
    EXECUTE format('CREATE TABLE %I (id serial primary key);', tablename);
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. Postgres CSV COPY от/импортиране не зачита CSV заглавките

  2. Docker Compose и Postgres:Името не се разрешава

  3. SQL JOIN в PostgreSQL - различен план за изпълнение в клаузата WHERE отколкото в клаузата ON

  4. Правилен начин за анотиране на поле за ранг за набор от заявки

  5. Локална грешка на Postgres