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

For цикъл с име на динамична таблица в Postgresql 9.1?

Не можете да използвате променлива като идентификатор на таблица или колона в plpgsql вграден SQL. Решението е динамичен SQL - оператори EXECUTE или FOR IN EXECUTE:

DO $$
DECLARE
  tables text[] = ARRAY['table1','table2'];
  table_name text;
  rec record;
BEGIN
  FOREACH table_name IN ARRAY tables
  LOOP
    FOR r IN EXECUTE format('SELECT * FROM %I', table_name)
    LOOP
      RAISE NOTICE '%', rec;
    END LOOP; 
  END LOOP;
END; $$



  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 КОПИРА В/ОТ ФАЙЛ като не суперпотребител

  2. Rails не конвертира часова зона (PostgreSQL)

  3. Разширено съвпадение на дялове за присъединяване по дял

  4. Трябва ли версията на JDBC драйвер и версията на DB да съвпадат точно?

  5. Failover &Failback за PostgreSQL на Microsoft Azure