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

Tłumaczenie zapytania z Firebird na PostgreSQL

Postgres ma inny sposób przechowywania informacji o zawartości systemu. Nazywa się to Katalogi systemowe .

W Firebird twoje zapytanie zasadniczo zwraca wiersz dla każdej kolumny tabeli w każdym schemacie z dodatkową kolumną Integer, która odwzorowuje typ danych pola.

W Postgresie przy użyciu tabel systemowych w pg_catalog schemat coś podobnego można uzyskać za pomocą tego zapytania:

SELECT 
  TRIM(c.relname) AS table_name, TRIM(a.attname) AS column_name, a.atttypid AS field_type
FROM pg_class c
LEFT JOIN pg_attribute a ON 
  c.oid = a.attrelid
  AND a.attnum > 0 -- only ordinary columns, without system ones
WHERE c.relkind = 'r' -- only tables
ORDER BY 1,2

Powyższe zapytanie zwraca również katalogi systemowe. Jeśli chcesz wykluczyć musisz dodać kolejne JOIN do pg_namespace i klauzulę WHERE z pg_namespace.nspname <> 'pg_catalog' , ponieważ jest to schemat, w którym przechowywane są katalogi systemowe.

Jeśli chcesz również widzieć nazwy typów danych zamiast ich reprezentatywnych numerów, dodaj JOIN do pg_type .

Schemat informacji składa się z kolekcji widoków. W większości przypadków nie potrzebujesz całego zapytania SQL, które stoi za widokiem, więc użycie tabel systemowych zapewni lepszą wydajność. Możesz jednak sprawdzić definicję widoków, aby rozpocząć pracę z tabelami i warunkami użytymi do utworzenia danych wyjściowych.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. punkty przerwania w zaćmieniu przy użyciu postgresql

  2. Jak tymczasowo wyłączyć ograniczenia integralności db w django - postgresql

  3. BŁĄD:błąd składni przy lub blisko OVER

  4. Tablica zagregowana Postgresql

  5. Uaktualnić kolumnę PostgreSQL JSON do JSONB?