DROP AGGREGATE — 集約関数を削除する
DROP AGGREGATE [ IF EXISTS ]name
(aggregate_signature
) [, ...] [ CASCADE | RESTRICT ] ここでaggregate_signature
は以下の通りです。 * | [argmode
] [argname
]argtype
[ , ... ] | [ [argmode
] [argname
]argtype
[ , ... ] ] ORDER BY [argmode
] [argname
]argtype
[ , ... ]
DROP AGGREGATE
を実行すると、既存の集約関数定義を削除することができます。
このコマンドを実行するには、現在のユーザがその集約関数を所有している必要があります。
IF EXISTS
集約が存在しない場合でもエラーになりません。 この場合注意メッセージが発行されます。
name
既存の集約関数の名前です(スキーマ修飾名も可)。
argmode
引数のモードで、IN
またはVARIADIC
です。
省略した場合のデフォルトはIN
です。
argname
引数の名前です。
DROP AGGREGATE
は実際には引数の名前を無視することに注意してください。
これは、集約関数の本体を特定するのに必要になるのは、引数のデータ型だけだからです。
argtype
集約関数の操作対象となる入力データ型です。
引数を持たない関数を参照する場合は、引数指定の一覧の場所に*
を記述してください。
順序集合集約関数を参照する場合は、直接引数と集約引数の指定の間にORDER BY
を記述してください。
CASCADE
その集約関数に依存しているオブジェクト(集約関数を利用しているビューなど)を自動的に削除し、さらにそれらのオブジェクトに依存するすべてのオブジェクトも削除します(5.14参照)。
RESTRICT
依存しているオブジェクトがある場合、その集約関数の削除要求を拒否します。 こちらがデフォルトです。
順序集合集約を参照するための代替となる構文については、ALTER AGGREGATEに記述されています。
integer
型のmyavg
集約関数を削除します。
DROP AGGREGATE myavg(integer);
順序列の任意のリストと直接引数の適合するリストをとる、仮想集合集約関数myrank
を削除します。
DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");
複数の集約関数を1つのコマンドで削除します。
DROP AGGREGATE myavg(integer), myavg(bigint);
標準SQLには、DROP AGGREGATE
文はありません。