Как редактировать хранимую процедуру PostgreSQL?

Я медленно двигаюсь от MSSQL к PostgreSQL.

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

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

5 ответов


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


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

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

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

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


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

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

2) Поместите код с функцией в файл.язык SQL.

3) создайте файл оболочки / bat в том же каталоге с файлом.в SQL:

psql -U postgres dbname < file.sql

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

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


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


щелкните правой кнопкой мыши по функции в дереве объектов (слева) - > Скрипты - > создать скрипт

или

выполнить новый SQL-запрос - > скопировать код " создать или заменить функцию ...- к нему! .. --1-->

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