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. Возможность сослаться по имени подпрограммы на агрегатную функцию является расширением Postgres Pro.
См. также
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_nameALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] OWNER TO {new_owner| CURRENT_USER | SESSION_USER } ALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] SET SCHEMAnew_schemaALTER ROUTINEname[ ( [ [argmode] [argname]argtype[, ...] ] ) ] [ NO ] DEPENDS ON EXTENSIONextension_namewhereactionis one of: IMMUTABLE | STABLE | VOLATILE [ NOT ] LEAKPROOF [ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER PARALLEL { UNSAFE | RESTRICTED | SAFE } COSTexecution_costROWSresult_rowsSETconfiguration_parameter{ TO | = } {value| DEFAULT } SETconfiguration_parameterFROM CURRENT RESETconfiguration_parameterRESET 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 Postgres Pro extension.
See Also
ALTER AGGREGATE, ALTER FUNCTION, ALTER PROCEDURE, DROP ROUTINE Note that there is no CREATE ROUTINE command.