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