powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
17 сообщений из 17, страница 1 из 1
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088220
mrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хелло АЛЛ!

Мож кто знает как вытянуть DDL, или что-то на подобии для таблицы PostrgreSQL?

вижу с этим проблемы...
Подсказали что нада рыть гдето в системных каталогах, но я с постгрес еще на "ВЫ", так что буду благодарен за конструктивную помощь!

Спасибо!
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088257
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могу лишь подсказать в каком направлении рыть :)
Ставишь pgAdmin.
Настраиваешь его, чтобы он вел лог своих запросов "Файл -> Опции ->"
Закладка "Ведение лога", там вбиваешь имя файла и ставишь уровень ведения лога в отладку.
Заходишь через него в бд, встаешь курсором на таблицу. pgAdmin показывает тебе ddl таблицы. Нажимаешь F5, чтобы он обновил данные о ней. Потом смотришь в лог проги и вникаешь что к чему, отчего и почему :)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088381
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ман
Chapter 41. System Catalogs

не увлекайся, а то как сказал один админ

Гнать программеров из системных каталогов!!
Сегодня они читают отуда а завтра писать захотят :-E

:-))
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088393
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vfabrман
Chapter 41. System Catalogs

не увлекайся, а то как сказал один админ

Гнать программеров из системных каталогов!!
Сегодня они читают отуда а завтра писать захотят :-E

:-))

Бывало... правда, всё обходилось... :)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088424
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А смысл извращаться с системными каталогами, если есть pg_dump, pgAdmin ?
Разве что нет возможности его запустить , например, нет прав на удаленном сервере :) . (Раз такое таки пришлось сооружать - мрак!)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088436
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XMА смысл извращаться с системными каталогами, если есть pg_dump, pgAdmin ?
Разве что нет возможности его запустить , например, нет прав на удаленном сервере :) . (Раз такое таки пришлось сооружать - мрак!)

Хороший скриптик :)
Сам писал али где-то ещё подобные скрипты выложены? :)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088441
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам писал - выдирая куски из pg_dump.c
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088479
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
SELECT  
  ...
FROM 
  pg_attribute


а что такое pg_attribute по вашему??
это и есть таблица в системной схеме pg_catalog.
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088486
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по хорошему надо не к системным таблицам доступ давать, а к системным вьюхам ...

только учтите что база ими (системными штуками) тоже активно пользуется и программеры своими запросам создают конкуренцию базе ...
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088498
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vfabrпо хорошему надо не к системным таблицам доступ давать, а к системным вьюхам ...

только учтите что база ими (системными штуками) тоже активно пользуется и программеры своими запросам создают конкуренцию базе ...

А какая разница между прямым запросом к системным таблицам и косвенным?
Когда одновременно больше 50 активных подключений (и даже если не брать их), то базе, по-моему, должно быть глубоко параллельно :)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088507
vfabr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во вьюхи писать нельзя :-)

если у тебя 10 девелоперов разного уровня и квалификации и боевая база?? ну ка дай им доступ ... мальчик какой нить молодой как поработает ;-))

вообщем меньше свободы и все будет гуд!
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33088523
Meta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vfabrво вьюхи писать нельзя :-)

если у тебя 10 девелоперов разного уровня и квалификации и боевая база?? ну ка дай им доступ ... мальчик какой нить молодой как поработает ;-))

вообщем меньше свободы и все будет гуд!

Любимое развление девелоперов - тестить нововведения и что-то изменять на живой базе :-) Адреналина, небось, не хватает по жизни :)
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33090297
mrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если немного упростить задачу до:
1. получить список полей таблицы(название, тип, значение по умолчанию, нулл)
2. получить список первичных ключей(поле)
3. получить список внешних ключей(поле, ссылка)

Я копал с помощью
$psql -E -U <dbuser> <database>
=>\d+ <tableName>

пункт 1, 2 решил таким образом, а вот с 3-м - проблемы: не знаю как...

Есть идеи?
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33091208
URIX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
во вьюхи писать нельзя :-)но, можно имитировать запись во вьюху через rule ... instesd и вызывать ХП с нужными правами ;))
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33091627
фффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
URIX во вьюхи писать нельзя :-)но, можно имитировать запись во вьюху через rule ... instesd и вызывать ХП с нужными правами ;))
Можно-то можно, да кто им (молодым девелоперам) разрешит. Права писать в системные таблицы/вьюхи, то есть суперюзерских прав, у простых девелоперов быть не должно.

vfabr
только учтите что база ими (системными штуками) тоже активно пользуется и программеры своими запросам создают конкуренцию базе .

Чтение из системных таблиц происходит постоянно, при любом запросе (иначе зачем они нужны?)

mrix
3. получить список внешних ключей(поле, ссылка)

Этот велосипед уже изобретен, называется INFORMATION_SCHEMA.
К этой схеме (в отличие от системных таблиц) можно и нужно обращаться.

Правда если нужна информация по специфичным для Постгреса штукам, то от обращения к системным таблицам не уйти. И в этом случае, чтобы избавиться от переписывания запросов на клиенте, лучше (имхо) создать по образцу INFORMATION_SCHEMA свои вьюхи с нужными полями.
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33092221
mwolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, если разговор пошёл о скриптах
mrix
$psql -E -U <dbuser> <database>
=>\d+ <tableName>
, то не проще ли уж тогда взять
Код: plaintext
1.
pg_dump --schema-only --file=create_schema.sql
и не парить верхнюю часть туловища?
...
Рейтинг: 0 / 0
аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
    #33092982
mrix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mwolf
и не парить верхнюю часть туловища?

Не катит!
так как эта информация нужна динамично. Тоесть нада получить скл, который это-же выполнит!

Кстати: мой способ - полностью рабочий - показывает все что надо!

Вопрос закрыт!
Всем большое спасибо!
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / аналог MySQL-евого "SHOW CREATE TABLE <name>" ???
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]