ALTER ROUTINE
ALTER ROUTINE — изменить определение подпрограммы
Синтаксис
ALTER ROUTINEимя
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ]действие
[ ... ] [ RESTRICT ] ALTER ROUTINEимя
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] RENAME TOновое_имя
ALTER ROUTINEимя
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] OWNER TO {новый_владелец
| CURRENT_USER | SESSION_USER } ALTER ROUTINEимя
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] SET SCHEMAновая_схема
ALTER ROUTINEимя
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] [ NO ] DEPENDS ON EXTENSIONимя_расширения
Гдедействие
может быть следующим: IMMUTABLE | STABLE | VOLATILE [ NOT ] LEAKPROOF [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER PARALLEL { UNSAFE | RESTRICTED | SAFE } COSTстоимость_выполнения
ROWSстрок_в_результате
SETпараметр_конфигурации
{ TO | = } {значение
| DEFAULT } SETпараметр_конфигурации
FROM CURRENT RESETпараметр_конфигурации
RESET ALL
Описание
ALTER ROUTINE
изменяет определение подпрограммы, то есть агрегата, функции или процедуры. Описание параметров, дополнительные примеры и подробности представлены в описаниях ALTER AGGREGATE, ALTER FUNCTION и ALTER PROCEDURE.
Примеры
Переименование подпрограммы foo
для типа integer
в foobar
:
ALTER ROUTINE foo(integer) RENAME TO foobar;
Эта команда будет работать независимо от того, является ли foo
процедурой, агрегатной или обычной функцией.
Совместимость
Этот оператор частично совместим с оператором ALTER ROUTINE
в стандарте SQL. За подробностями обратитесь к описаниям ALTER FUNCTION и ALTER PROCEDURE. Возможность сослаться по имени подпрограммы на агрегатную функцию является расширением PostgreSQL.
См. также
ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINEЗаметьте, что команды CREATE ROUTINE
нет.
ALTER ROUTINE
ALTER ROUTINE — change the definition of a routine
Synopsis
ALTER ROUTINEname
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ]action
[ ... ] [ RESTRICT ] ALTER ROUTINEname
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] RENAME TOnew_name
ALTER ROUTINEname
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] OWNER TO {new_owner
| CURRENT_USER | SESSION_USER } ALTER ROUTINEname
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] SET SCHEMAnew_schema
ALTER ROUTINEname
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] [ NO ] DEPENDS ON EXTENSIONextension_name
whereaction
is one of: IMMUTABLE | STABLE | VOLATILE [ NOT ] LEAKPROOF [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER PARALLEL { UNSAFE | RESTRICTED | SAFE } COSTexecution_cost
ROWSresult_rows
SETconfiguration_parameter
{ TO | = } {value
| DEFAULT } SETconfiguration_parameter
FROM CURRENT RESETconfiguration_parameter
RESET ALL
Description
ALTER ROUTINE
changes the definition of a routine, which can be an aggregate function, a normal function, or a procedure. See under ALTER AGGREGATE, ALTER FUNCTION, and ALTER PROCEDURE for the description of the parameters, more examples, and further details.
Examples
To rename the routine foo
for type integer
to foobar
:
ALTER ROUTINE foo(integer) RENAME TO foobar;
This command will work independent of whether foo
is an aggregate, function, or procedure.
Compatibility
This statement is partially compatible with the ALTER ROUTINE
statement in the SQL standard. See under ALTER FUNCTION and ALTER PROCEDURE for more details. Allowing routine names to refer to aggregate functions is a PostgreSQL extension.
See Also
ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE Note that there is no CREATE ROUTINE
command.