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

Превеждане на заявка от Firebird към PostgreSQL

Postgres има друг начин за съхраняване на информация за системното съдържание. Това се нарича Системни каталози .

Във Firebird вашата заявка основно връща ред за всяка колона на таблица във всяка схема с допълнителна колона Integer, която се съпоставя с тип данни на поле.

В Postgres с помощта на системни таблици в pg_catalog schema нещо подобно може да се постигне с помощта на тази заявка:

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

Горната заявка също връща системни каталози. Ако искате да изключите за тях трябва да добавите друг JOIN към pg_namespace и клауза where с pg_namespace.nspname <> 'pg_catalog' , защото това е схемата, в която се съхраняват системните каталози.

Ако също искате да видите имена на типове данни вместо представителните им номера, добавете JOIN към pg_type .

Информационна схема се състои от колекция от изгледи. В повечето случаи не се нуждаете от цялата SQL заявка, която стои зад изгледа, така че използването на системни таблици ще ви даде по-добра производителност. Можете обаче да прегледате дефиницията на изгледи, само за да започнете с таблиците и условията, използвани за формиране на изход.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. По-добре ли е да използвате няколко бази данни с по една схема всяка или една база данни с множество схеми?

  2. Проверете дали JSON масивът на Postgres съдържа низ

  3. Как да се свържете с localhost PostgreSQL на Mac с помощта на PSequel GUI?

  4. Postgresql:вмъкване на стойност на колона от файл

  5. Превеждане на заявка от Firebird към PostgreSQL