rean1mator
Дата: 06.01.2015 22:07:50
Здравствуйте!
Сегодня начал изучать функции в PostgreSQL. Написал свою первую тестовую функцию, опираясь на примеры и тд. Всё запустилось, но остались вопросы. Если кому-то будет не трудно, просветите меня, пожалуйста, в следующем:
Как я понял, вместо блока DECLARE имена переменным можно задавать прямо в параметрах (как в php), так ли это ?
Что означает $$ перед BEGIN ?
Что такое found в конструкции IF found THEN ?
Как понять конструкцию EXCEPTION WHEN unique_violation THEN и что она делает ?
И последний вопрос, который напрямую не касается SQL, но, может быть кто-то в курсе:
Как сохранить готовый код функции через PgAdmin III? Знаю, что там есть определенная форма для создания функций, но там мало что понятно
tadmin
Дата: 07.01.2015 14:19:11
Ответы на все ваши вопросы можно найти в документации.
|
---|
Как я понял, вместо блока DECLARE имена переменным можно задавать прямо в параметрах (как в php), так ли это ? |
Без примера вас трудно понять. Можно объявить переменные в Declare, можно в заголовке функции (in & out параметры сигнатуре вызова)
|
---|
Что означает $$ перед BEGIN ? |
http://www.postgresql.org/docs/9.4/interactive/plpgsql-structure.html |
---|
Что такое found в конструкции IF found THEN ? |
40.5.5. Obtaining the Result Status
http://www.postgresql.org/docs/9.4/static/plpgsql-statements.html |
---|
Как понять конструкцию EXCEPTION WHEN unique_violation THEN и что она делает ? |
40.6.6. Trapping Errors
http://www.postgresql.org/docs/9.4/static/plpgsql-control-structures.html |
---|
И последний вопрос, который напрямую не касается SQL, но, может быть кто-то в курсе: Как сохранить готовый код функции через PgAdmin III? Знаю, что там есть определенная форма для создания функций, но там мало что понятно |
определение функции - это обычный скрипт, который можно выполнить в pgAdmin Query Tool. Ctrl+E
На мой взгляд, спец. формы для создания функций неудобны. Не только в pgAdmin.
rean1mator
Дата: 07.01.2015 23:49:37
Ы, например, то, что я её не вижу в схеме, сколько бы я не пытался нажимать "Выполнить" и обновлять содержимое схемы
Ы
Дата: 08.01.2015 01:28:14
rean1mator,
в вашем случае успешное выполнение сигнализирует о том, что функция создана. Ищите в схеме public в разделе «Функции». Имя будет в нижнем регистре.