Форум сайта python.su
Здравствуйте, всем.
Осваиваю потихоньку питон 3.0.
Поскольку для этой версии, как я понял нет модуля для mySql с которой я до этого всегда работал.
Решил воспользоваться Postgres.Раньше с ней не работал.
Возникла проблема с выводом списка таблиц в базе. В mysql, если я правильно помню есть SHOW TABLES.
Здесь такое не работает.. как быть?
Интересует есть ли общий способ вывода списка таблиц для pg и mysql?
Версия Postgres 8.2.5
Модуль python “postgresql”.
Отредактировано (Июнь 12, 2009 00:28:48)
Офлайн
Есть 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)
Офлайн
благодарю.
я ещё вчера вот это нашёл -)
–
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;
–
поразмыслив решил данные о таблицах хранить в специальном файле. мне нужны только имена таблиц и имена полей.
Поэтому проблем с разными СУБД возникнуть не должно.
Хотя конечно решение далёкое от идеала, но есть некоторые плюсы.
Офлайн
kvazar, а покажите, зачем вам это понадобилось. Просто я всегда считал, что таблиц и прочие реляции должны быть постоянными, один раз заданными. Получение их списка нужно только в специфических программах для просмотра/настройки любой базы.
Офлайн
ZZZНу собственно вы абсолютно правильно предположили для чего мне это надо.
kvazar, а покажите, зачем вам это понадобилось. Просто я всегда считал, что таблиц и прочие реляции должны быть постоянными, один раз заданными. Получение их списка нужно только в специфических программах для просмотра/настройки любой базы.
Офлайн
Ясно. Всё-таки рекомендую распотрашить pg_catalog, система будет более цельной.
kvazarА я привык psql… :-) Никогда не использовал такие инструменты.
Я сейчас таблицы создаю, редактирую в разы быстрее и проще, чем через pgMyAdmin.
Офлайн