Как редактировать хранимую процедуру PostgreSQL?
Я медленно двигаюсь от MSSQL к PostgreSQL.
в MSSQL я мог бы вызвать редактирование уже сохраненной процедуры или функции, а административная оболочка (среда SQL Server Management Studio) показала мне текст процедуры, поэтому мне не пришлось хранить ее исходный код где-то в текстовом файле.
Как сделать то же самое с PostgreSQL удобным способом? Я использую pgAdmin III.
5 ответов
на 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-->
затем отредактируйте скрипт и не забудьте его выполнить