|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
Подскажите каким образом узнать DDL объекта в PostgreSQL ? version 7.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2004, 15:49 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
Все описания DDL можно получить при помощи оператора SELECT Имена системных таблиц по умолчанию начинаются с pg_ Например В psql есть комманда \df+ Она выполняет вот такой запрос: SELECT CASE WHEN p.proretset THEN 'setof ' ELSE '' END || pg_catalog.format_type(p.prorettype, NULL) as "Тип данных результата", n.nspname as "Схема", p.proname as "Имя", pg_catalog.oidvectortypes(p.proargtypes) as "Типы данных аргументов", u.usename as "Владелец", l.lanname as "Язык", p.prosrc as "Исходный текст", pg_catalog.obj_description(p.oid, 'pg_proc') as "Описание" FROM pg_catalog.pg_proc p LEFT JOIN pg_catalog.pg_namespace n ON n.oid = p.pronamespace LEFT JOIN pg_catalog.pg_language l ON l.oid = p.prolang LEFT JOIN pg_catalog.pg_user u ON u.usesysid = p.proowner WHERE p.prorettype <> 'pg_catalog.cstring'::pg_catalog.regtype AND p.proargtypes[0] <> 'pg_catalog.cstring'::pg_catalog.regtype AND NOT p.proisagg AND pg_catalog.pg_function_is_visible(p.oid) ORDER BY 2, 3, 1, 4; Аналогично можно получить свойства и DDL практически любого объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2004, 19:39 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
отлично, так я могу увидеть DDL функций, а есть возможность посмотреть DDL триггера? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2004, 08:01 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
Не помню - специально в предыддущем посте я писал про таблицы pg_* В них все описано есть, А что где конкретно -RTFM. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2004, 22:37 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
С утра просматривал старые скрипты в мусорнике и вот чего вспомнил: --Имя и определение тригеров для данной таблицы --Дамп комманды "\d mytiblya" SELECT t.tgname, pg_catalog.pg_get_triggerdef(t.oid) FROM pg_catalog.pg_trigger t WHERE t.tgrelid = (SELECT c.oid FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace WHERE pg_catalog.pg_table_is_visible(c.oid) AND c.relname ~ '^mytiblya$') AND (not tgisconstraint OR NOT EXISTS (SELECT 1 FROM pg_catalog.pg_depend d JOIN pg_catalog.pg_constraint c ON (d.refclassid = c.tableoid AND d.refobjid = c.oid) WHERE d.classid = t.tableoid AND d.objid = t.oid AND d.deptype = 'i' AND c.contype = 'f')); Опятть таки скажу - все это есть в коде psql! RTFM и да пребудет с вами Шворц! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2004, 15:35 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
А не проще pgAdmin (под иксы есть, и под винды) ??? он даёт DDL всех объектов в базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2004, 15:43 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
пытаюсь выполнить предложенный запрос, вылетает ошибка parser: parse error at or near "(" подскажите в чём причина? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 13:35 |
|
как узнать DDL какого либо объекта (функции, триггера)
|
|||
---|---|---|---|
#18+
А не проще pgAdmin (под иксы есть, и под винды) ??? он даёт DDL всех объектов в базе. Гы! А IMHO проще в psql набрать \d имя_таблицы и прочитать описание триггеров. Вроде по-русски писал: --Дамп комманды "\d mytiblya" Ну а "\df" вывалит описание всех функций в данной базе А из программы я делаю что-то вроде select proname,prosrc from pg_proc; И вообще раз увас стоит какой-то древний и заведомо не локализированный Постгрес - вот вам кусочек вывода команнды \? (только учтите что это все относится к PG 7.4 - могут мыть мелкие отличия- впрочем все эти хваленые PGAdminы тоже соскрипом работают с разными версиями постгреса 8=) ) И лично я советовал бы подумать об обновлении. 7.2 -отнюдь не настолько стабильна чтобы за нее цепляться. Список комманд psql : Код: 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. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2004, 21:23 |
|
|
start [/forum/topic.php?fid=53&fpage=359&tid=2007924]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 444ms |
0 / 0 |