Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Автоматизация описания структур таблиц. / 5 сообщений из 5, страница 1 из 1
23.10.2006, 13:23
    #34073827
opexob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматизация описания структур таблиц.
Это пригодится многим.
Ниже представлен запрос, выводящий реальную структуру таблиц.

WHERE...LIKE... из запроса надо вырезать (просто у нас для удобства работы с объектами все наименования унифицированы - таблицы начинаются с "tb_", вьюхи c "v_"...)

----------------------------------------------------------------
SELECT
information_schema.columns.table_name,
information_schema.columns.column_name,
information_schema.columns.ordinal_position,
information_schema.columns.column_default,
information_schema.columns.is_nullable,
information_schema.columns.data_type,
information_schema.columns.character_maximum_length,
information_schema.columns.character_octet_length,
information_schema.columns.numeric_precision,
information_schema.columns.numeric_precision_radix,
information_schema.columns.numeric_scale,
information_schema.columns.datetime_precision,
information_schema.columns.udt_name
FROM
information_schema.columns
WHERE
(information_schema.columns.table_name LIKE 'tb_%')
ORDER BY
information_schema.columns.table_name,
information_schema.columns.ordinal_position
----------------------------------------------------------------

Все поля таблиц сопровождены комментариями , как то:
...
COMMENT ON COLUMN tb_proizv.proizv_www IS 'http:// адрес сайта производителя';
COMMENT ON COLUMN tb_edizm.edizm_id IS 'Идентификатор единиц измерений';
COMMENT ON COLUMN tb_menu.menu_hotkey IS 'Горячая клавиша';
...

Для полноты выборки не хватает одного поля - COMMENT !!!

Ребята, подсобите, пожалуйста, подцепить в запрос недостающее поле 'COMMENT'.
...
Рейтинг: 0 / 0
23.10.2006, 14:10
    #34073999
.gc
.gc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматизация описания структур таблиц.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
CREATE OR REPLACE VIEW table_description AS
SELECT
information_schema.columns.table_schema,
information_schema.columns.table_name,
information_schema.columns.column_name,
information_schema.columns.ordinal_position,
information_schema.columns.column_default,
information_schema.columns.is_nullable,
information_schema.columns.data_type,
information_schema.columns.character_maximum_length,
information_schema.columns.character_octet_length,
information_schema.columns.numeric_precision,
information_schema.columns.numeric_precision_radix,
information_schema.columns.numeric_scale,
information_schema.columns.datetime_precision,
information_schema.columns.udt_name
FROM
information_schema.columns;

create or replace view column_description as
select nspname as table_schema, relname as table_name , attname as column_name, col_description(c.oid, a.attnum) as column_description
from pg_catalog.pg_class c
join pg_catalog.pg_attribute a on (c.oid = a.attrelid)
join pg_catalog.pg_namespace n on (n.oid = c.relnamespace)
where a.attnum >  0  and not a.attisdropped and c.relkind in ('v', 'r');

select *
from table_description join column_description using (table_schema, table_name, column_name)
ORDER BY table_name, ordinal_position;

как-то так, примерно.
...
Рейтинг: 0 / 0
23.10.2006, 14:47
    #34074155
opexob
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматизация описания структур таблиц.
.gc
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select nspname as table_schema, relname as table_name , attname as column_name, col_description(c.oid, a.attnum) as column_description
from pg_catalog.pg_class c
join pg_catalog.pg_attribute a on (c.oid = a.attrelid)
join pg_catalog.pg_namespace n on (n.oid = c.relnamespace)
where a.attnum >  0  and not a.attisdropped and c.relkind in ('v', 'r');
/*
select *
from table_description join column_description using (table_schema, table_name, column_name)
ORDER BY table_name, ordinal_position;
*/

как-то так, примерно.

.gs, cпасибо !!!
...
Рейтинг: 0 / 0
23.10.2006, 16:52
    #34074713
valera_k2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматизация описания структур таблиц.
Может
Код: plaintext
COL_DESCRIPTION()
лучше подойдет?
...
Рейтинг: 0 / 0
23.10.2006, 19:57
    #34075247
valera_k2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Автоматизация описания структур таблиц.
извиняюсь не заметил что уже было
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Автоматизация описания структур таблиц. / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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