{
    "mode": "man",
    "parameter": "alter_routine",
    "section": "7",
    "url": "https://www.chedong.com/phpMan.php/man/alter_routine/7/json",
    "generated": "2026-06-16T10:02:10Z",
    "synopsis": "ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\naction [ ... ] [ RESTRICT ]\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nRENAME TO newname\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nOWNER TO { newowner | CURRENTROLE | CURRENTUSER | SESSIONUSER }\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nSET SCHEMA newschema\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\n[ NO ] DEPENDS ON EXTENSION extensionname\nwhere action is one of:\nIMMUTABLE | STABLE | VOLATILE\n[ NOT ] LEAKPROOF\n[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\nPARALLEL { UNSAFE | RESTRICTED | SAFE }\nCOST executioncost\nROWS resultrows\nSET configurationparameter { TO | = } { value | DEFAULT }\nSET configurationparameter FROM CURRENT\nRESET configurationparameter\nRESET ALL",
    "sections": {
        "NAME": {
            "content": "ALTERROUTINE - change the definition of a routine\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "ALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\naction [ ... ] [ RESTRICT ]\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nRENAME TO newname\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nOWNER TO { newowner | CURRENTROLE | CURRENTUSER | SESSIONUSER }\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\nSET SCHEMA newschema\nALTER ROUTINE name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ]\n[ NO ] DEPENDS ON EXTENSION extensionname\n\nwhere action is one of:\n\nIMMUTABLE | STABLE | VOLATILE\n[ NOT ] LEAKPROOF\n[ EXTERNAL ] SECURITY INVOKER | [ EXTERNAL ] SECURITY DEFINER\nPARALLEL { UNSAFE | RESTRICTED | SAFE }\nCOST executioncost\nROWS resultrows\nSET configurationparameter { TO | = } { value | DEFAULT }\nSET configurationparameter FROM CURRENT\nRESET configurationparameter\nRESET ALL\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "ALTER ROUTINE changes the definition of a routine, which can be an aggregate function, a\nnormal function, or a procedure. See under ALTER AGGREGATE (ALTERAGGREGATE(7)), ALTER\nFUNCTION (ALTERFUNCTION(7)), and ALTER PROCEDURE (ALTERPROCEDURE(7)) for the description of\nthe parameters, more examples, and further details.\n",
            "subsections": []
        },
        "EXAMPLES": {
            "content": "To rename the routine foo for type integer to foobar:\n\nALTER ROUTINE foo(integer) RENAME TO foobar;\n\nThis command will work independent of whether foo is an aggregate, function, or procedure.\n",
            "subsections": []
        },
        "COMPATIBILITY": {
            "content": "This statement is partially compatible with the ALTER ROUTINE statement in the SQL standard.\nSee under ALTER FUNCTION (ALTERFUNCTION(7)) and ALTER PROCEDURE (ALTERPROCEDURE(7)) for\nmore details. Allowing routine names to refer to aggregate functions is a PostgreSQL\nextension.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "ALTER AGGREGATE (ALTERAGGREGATE(7)), ALTER FUNCTION (ALTERFUNCTION(7)), ALTER PROCEDURE\n(ALTERPROCEDURE(7)), DROP ROUTINE (DROPROUTINE(7))\n\nNote that there is no CREATE ROUTINE command.\n\n\n\nPostgreSQL 14.23                                2026                                ALTER ROUTINE(7)",
            "subsections": []
        }
    },
    "summary": "ALTERROUTINE - change the definition of a routine",
    "flags": [],
    "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."
    ],
    "see_also": [
        {
            "name": "ALTERAGGREGATE",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/ALTERAGGREGATE/7/json"
        },
        {
            "name": "ALTERFUNCTION",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/ALTERFUNCTION/7/json"
        },
        {
            "name": "ALTERPROCEDURE",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/ALTERPROCEDURE/7/json"
        },
        {
            "name": "DROPROUTINE",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/DROPROUTINE/7/json"
        },
        {
            "name": "ROUTINE",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/ROUTINE/7/json"
        }
    ]
}