Как редактировать хранимую процедуру PostgreSQL? - PullRequest
17 голосов
/ 25 марта 2012

Я медленно перехожу из MSSQL в PostgreSQL.

В MSSQL я мог вызвать редактирование уже сохраненной процедуры или функции, и административная оболочка (SQL Server Management Studio) показала мне текст процедуры, поэтому я сделалне нужно хранить его исходный код где-нибудь в текстовом файле.

Как сделать то же самое с PostgreSQL удобным способом?Я использую pgAdmin III.

Ответы [ 5 ]

20 голосов
/ 25 марта 2012

В официальные дистрибутивы Postgres включены 2 клиента - CLI psql и GUI один pgAdmin.Оба поддерживают то, что вы хотите: для psql это \ef и для pgAdmin - щелкните правой кнопкой мыши на функции, «Свойства», вкладка «Код».

3 голосов
/ 30 июля 2014

Это также удобный способ отредактировать код и проверить его.

1) Извлечь код требуемой функции SQL из pgAdmin.

2) Поместите код с функцией в file.sql.

3) Создайте файл shell / bat в том же каталоге, что и file.sql:

psql -U postgres dbname < file.sql

4) Поместите ярлык для файла shell / bat на панель быстрого доступа.

5) Отредактируйте файл в своем любимом текстовом редакторе и нажмите на ярлык, чтобы обновить функцию.

3 голосов
/ 25 марта 2012

В pgAdmin вы можете сделать свою жизнь проще, если активируете эту опцию:

Файл -> Параметры .. -> Инструмент запросов -> [x] Копирование SQL из основной формы в диалог SQL

Затем все, что отображается на панели SQL, будет скопировано во вновь открытое окно Query Tool. Итак, выберите функцию в браузере объектов и щелкните значок увеличительного стекла на панели инструментов.

Помните об открытой ошибке в текущей версии 1.14.2. По умолчанию public имеет привилегию EXECUTE для функций. Вы можете REVOKE эту привилегию - которая полезна только для SECURITY DEFINER функций. Но это REVOKE отсутствует в обратных инженерных инструкциях DDL от pgAdmin (NULL путают с пустым ACL). Осторожно, если вы удалите и воссоздаете такую ​​функцию!

1 голос
/ 25 марта 2012

phpPgAdmin позволит вам редактировать ваши хранимые процедуры и редактировать их в интерфейсе. Также настоятельно рекомендуется оставить комментарий под вопросом о внешнем хранении их для контроля версий.

0 голосов
/ 08 декабря 2017

щелкните правой кнопкой мыши функцию в дереве объектов (слева) -> Сценарии -> Сценарий СОЗДАТЬ

-или-

Выполнить новый запрос SQL -> скопировать в него код «создать или заменить функцию ...»

Затем отредактируйте скрипт и не забудьте его выполнить

...