Найти - Пользователи
Полная версия: список таблиц в postgres
Начало » Базы данных » список таблиц в postgres
1
kvazar
Здравствуйте, всем.
Осваиваю потихоньку питон 3.0.
Поскольку для этой версии, как я понял нет модуля для mySql с которой я до этого всегда работал.
Решил воспользоваться Postgres.Раньше с ней не работал.
Возникла проблема с выводом списка таблиц в базе. В mysql, если я правильно помню есть SHOW TABLES.
Здесь такое не работает.. как быть?
Интересует есть ли общий способ вывода списка таблиц для pg и mysql?
Версия Postgres 8.2.5
Модуль python “postgresql”.
Lexander
Есть 2 варианта: через командную строку и через запрос.
1.
psql \dt

2.
SELECT *
FROM pg_tables
WHERE tablename !~'^pg'

или

SELECT pg_class.relname,pg_namespace.nspname
FROM pg_class INNER JOIN pg_namespace ON pg_class.relnamespace=pg_namespace.oid
WHERE pg_table_is_visible(pg_class.oid)
kvazar
благодарю.
я ещё вчера вот это нашёл -)

SELECT n.nspname as “Schema”,
c.relname as “Name”,
CASE c.relkind WHEN ‘r’ THEN ‘table’ WHEN ‘v’ THEN ‘view’ WHEN ‘i’ THEN ‘index
’ WHEN ‘S’ THEN ‘sequence’ WHEN ‘s’ THEN ‘special’ END as “Type”,
u.usename as “Owner”
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname NOT IN ('pg_catalog', ‘pg_toast’)
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;

поразмыслив решил данные о таблицах хранить в специальном файле. мне нужны только имена таблиц и имена полей.
Поэтому проблем с разными СУБД возникнуть не должно.
Хотя конечно решение далёкое от идеала, но есть некоторые плюсы.
ZZZ
kvazar, а покажите, зачем вам это понадобилось. Просто я всегда считал, что таблиц и прочие реляции должны быть постоянными, один раз заданными. Получение их списка нужно только в специфических программах для просмотра/настройки любой базы.
kvazar
ZZZ
kvazar, а покажите, зачем вам это понадобилось. Просто я всегда считал, что таблиц и прочие реляции должны быть постоянными, один раз заданными. Получение их списка нужно только в специфических программах для просмотра/настройки любой базы.
Ну собственно вы абсолютно правильно предположили для чего мне это надо.
Я пишу небольшую ЦМС для себя.
В панели управления есть раздел для работы с БД, где есть возможность создания, редактирования и наполнения таблиц.
Изначально я хотел пользоваться программами вроде phpPgAdmin, но это оказалось неудобно.
Все имена полей таблиц имеют формат названий. То есть например img_ file, contents_textarea.
Потом на основе этих имён строится форма для заполнения таблицы, следовательно форма будет выглядеть примерно так
<input type='file' name='img' />
<textarea name='contents'></textarea>
Специальный раздел для управления таблицами всё максимально упрощает.
Я сейчас таблицы создаю, редактирую в разы быстрее и проще, чем через pgMyAdmin.
Ну и предполагается работа и с MySql и с Postgres.
ZZZ
Ясно. Всё-таки рекомендую распотрашить pg_catalog, система будет более цельной.

kvazar
Я сейчас таблицы создаю, редактирую в разы быстрее и проще, чем через pgMyAdmin.
А я привык psql… :-) Никогда не использовал такие инструменты.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB