Я создал таблицу в postgreSQL. Я хочу посмотреть на оператор SQL, используемый для создания таблицы, но не могу понять это.
Как получить create table
оператор SQL для существующей таблицы в Postgres через командную строку или оператор SQL?
postgresql
Раджа
источник
источник
pg_dump mydb -t mytable --schema-only
,aschema
фактическим именем схемы таблицы, которую вы хотите вывести. Заменитеatable
фактическим именем таблицы таблицы, которую вы хотите сбросить.pg_dump mydb -t '"TableName"' --schema-only
- иначе pg_dump не распознает имя таблицы.Мое решение состоит в том, чтобы войти в postgres db с помощью psql с опцией -E следующим образом:
В psql выполните следующие команды, чтобы увидеть sql, который postgres использует для генерации
оператора описательной таблицы:
Основываясь на sql, выведенном после выполнения этих
описательных команд, я смог собрать следующую функцию plpgsql:
Вот использование функции:
А вот оператор drop, если вы не хотите, чтобы эта функция сохранялась постоянно:
источник
NULL
для меня ... И как обрабатывается схема? Должен ли он возвращать операторы CREATE для таблиц с указанным именем из всех схем?Сгенерируйте оператор создания таблицы для таблицы в postgresql из командной строки linux:
Этот оператор выводит таблицу создания оператора SQL для меня:
Объяснение:
pg_dump помогает нам получить информацию о самой базе данных.
-U
обозначает имя пользователя. Мой пользователь pgadmin не имеет установленного пароля, поэтому мне не нужно вводить пароль. В-t
средстве Задаст для одной таблицы.--schema-only
означает вывод только данных о таблице, а не данных в таблице. Вот точная команда, которую я использую:источник
Если вы хотите найти оператор create для таблицы без использования pg_dump, этот запрос может сработать для вас (замените «имя таблицы» на имя вашей таблицы):
когда вызывается напрямую из psql, полезно сделать:
Кроме того, функция generate_create_table_statement в этом потоке работает очень хорошо.
источник
pg_dump
. все равно полезно +1Дин Тоадер Просто отлично! Я бы немного изменил ваш код, чтобы показать все ограничения в таблице и сделать возможным использование маски регулярного выражения в имени таблицы.
Теперь вы можете, например, сделать следующий запрос
что приводит к такому:
для каждой пользовательской таблицы.
источник
Самый простой способ, который я могу придумать, - это установить pgAdmin 3 ( найденный здесь ) и использовать его для просмотра вашей базы данных. Он автоматически сгенерирует запрос, который создаст соответствующую таблицу.
источник
Если вы хотите сделать это для разных таблиц одновременно, вы должны использовать ключ -t несколько раз (мне потребовалось некоторое время, чтобы выяснить, почему разделенный запятыми список не работает). Также может быть полезно отправлять результаты в файл или канал на сервер postgres на другом компьютере.
источник
Еще больше модификаций, основанных на ответе @vkkeeper. Добавлена возможность запроса таблицы из определенной схемы.
источник
Вот немного улучшенная версия shekwi «s запрос .
Он генерирует ограничение первичного ключа и может обрабатывать временные таблицы:
Используйте
table_name
параметр, чтобы указать имя таблицы.источник
источник
Это вариант, который работает для меня:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
Кроме того, если вы используете схемы, вам, конечно, нужно указать и это:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
Вы получите вывод, который вы можете использовать для повторного создания таблицы, просто запустите этот вывод в psql.
источник
Простое решение в чистом едином SQL. Вы получаете идею, вы можете расширить ее до большего количества атрибутов, которые вы хотели бы показать.
Вывод:
источник
Вот один оператор, который сгенерирует DDL для одной таблицы в указанной схеме, включая ограничения.
источник
Как и в других упомянутых ответах, нет встроенной функции, которая делает это.
Вот функция, которая пытается получить всю информацию, которая понадобится для репликации таблицы или для сравнения развернутых и проверенных в ddl.
Эта функция выводит:
пример
производит
источник
В базе данных pgadminIII >> схемы >> таблицы >> щелкните правой кнопкой мыши «Ваша таблица» >> сценарии >> «Выберите любой из них (Создать, Вставить, Обновить, Удалить ..)»
источник
Вот запрос с некоторыми изменениями,
источник