.schema для postgres - PullRequest
       2

.schema для postgres

2 голосов
/ 23 августа 2011

Я перевожу базу данных из sqlite3 в postgres и мне интересно, есть ли какие-нибудь короткие учебники, которые могут научить меня новому синтаксису.

Кроме того, в качестве краткого вопроса, как я могу увидеть схему таблицы postgres, которая эквивалентна .schema в sqlite?

Ответы [ 4 ]

5 голосов
/ 23 августа 2011

Вы можете использовать утилиту командной строки pg_dump, т. Е .:

pg_dump --table <table_name> --schema-only <database_name>

В зависимости от вашей среды вам, вероятно, потребуется указать параметры подключения (ключи -h, -p, -U).

3 голосов
/ 23 августа 2011

Вы можете использовать \d из psql:

=> \?
...

Informational
  (options: S = show system objects, + = additional detail)
  \d[S+]                 list tables, views, and sequences
  \d[S+]  NAME           describe table, view, sequence, or index
...

=> \d people
                                           Table "public.people"
         Column         |            Type             |                      Modifiers                      
------------------------+-----------------------------+-----------------------------------------------------
 id                     | integer                     | not null default nextval('people_id_seq'::regclass)
 created_at             | timestamp without time zone | not null
 updated_at             | timestamp without time zone | not null
...
Indexes:
    "people_pkey" PRIMARY KEY, btree (id)
...
Check constraints:
    "chk_people_latlng" CHECK ((lat IS NULL) = (lng IS NULL))
....

Вы также можете получить root права на information_schema, если выне внутри psql.

1 голос
/ 14 февраля 2012

Может быть, вы можете использовать шпаргалку PostgreSQL:

http://www.postgresonline.com/special_feature.php?sf_name=postgresql83_cheatsheet&outputformat=html

1 голос
/ 23 августа 2011

Если вы используете psql (и \ d ...), тогда вы можете

\set ECHO_HIDDEN

просмотреть sql для запросов, которые выполняет psql, чтобы собрать \ d ... output-- это полезно не только как примеры синтаксиса sql, но также показывает, где найти и как подключить метаданные базы данных.

Чтобы получить имя схемы для таблицы, вы можете:

SELECT  n.nspname AS schema_name,
        c.relname AS table_name
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname = '<table_name>'
;

(не знаю, как это сравнить с .schema)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...