PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dynamiczna nazwa tabeli w postgreSQL 9.3

Proszę, nie rób tego – najpierw przyjrzyj się alternatywom, zaczynając od partycjonowanie i wykluczanie ograniczeń .

Jeśli musisz używać dynamicznych nazw tabel, zrób to na poziomie aplikacji podczas generowania zapytania.

Jeśli wszystko inne zawiedzie, możesz użyć procedury PL/PgSQL, takiej jak:

CREATE OR REPLACE pleasedont(int year) RETURNS TABLE basetable AS $$
BEGIN
    RETURN QUERY EXECUTE format('SELECT col1, col2, col3 FROM %I', 'basetable_'||year);
END;
$$ LANGUAGE plpgsql;

Będzie to działać tylko wtedy, gdy masz tabelę podstawową, która ma taką samą strukturę jak tabele podrzędne. Praca z tym jest również bardzo bolesna, gdy zaczynasz dodawać kwalifikatory (gdzie ograniczenia klauzul itp.) i zapobiega wszelkiego rodzaju buforowaniu planu lub efektywnemu użyciu przygotowanych instrukcji.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zainstaluj PL/Java 1.5.2 w PostgreSQL 11

  2. org.postgresql.util.PSQLException:FATAL:brak wpisu pg_hba.conf dla hosta

  3. Jak pogrupować wyniki według liczby relacji?

  4. Jak obliczyć medianę w PostgreSQL

  5. Wyświetl wszystkie tabele w postgresql information_schema