Інформація схема є повільним і надійним способом: це стандартизоване і в значній мірі переносить на інші бази даних , які підтримують його. І він продовжуватиме працювати в основних версіях.
Однак погляди в інформаційній схемі часто приєднуються до багатьох таблиць із системних каталогів, щоб відповідати суворо стандартизованому формату - багато з яких більшість часу є лише мертвим вантажем. Це робить їх повільними .
Розробники Postgres не обіцяють, але основні принципи (наприклад, що тут потрібно) не змінюватимуться в основних версіях.
psql
(власний інтерфейс командного рядка), звичайно, займає швидку смугу і безпосередньо запитує джерело. Якщо ви почнете psql
з параметра-E
, відобразиться SQL за такими командами, як нахил нахилу \d
. Або \set ECHO_HIDDEN on
з командного рядка psql. Починаючи звідти, ви можете побудувати відповідь на своє запитання.
Враховуючи одну таблицю, чи можливо мати список імен стовпців для цієї таблиці.
SELECT attrelid::regclass AS tbl
, attname AS col
, atttypid::regtype AS datatype
-- more attributes?
FROM pg_attribute
WHERE attrelid = 'myschema.mytable'::regclass -- table name, optionally schema-qualified
AND attnum > 0
AND NOT attisdropped
ORDER BY attnum;
Швидше, ніж запитиinformation_schema.columns
. Спробуйте EXPLAIN ANALYZE
самі переконатися. Навряд чи це важливо для одноразового пошуку. Але це може змінити значення, якщо воно використовується в запиті / функції, що повторюється багато разів.
Існують також тонкі відмінності у видимості. Детальне порівняння: