在我的sql脚本中我想用最后一个查询返回一些记录.对于该查询,我正在使用聚合:
CREATE AGGREGATE array_agg_mult(anyarray) (
SFUNC = array_cat,
STYPE = anyarray,
INITCOND = '{}'
);
Run Code Online (Sandbox Code Playgroud)
因此,如果我两次调用脚本,我必须在最后删除聚合.但是脚本应该以自定义sql查询结束.有没有办法说出类似的话CREATE OR REPLACE?
你可以简单地DROP AGGREGATE IF EXISTS array_agg_mult(anyarray);在你之前CREATE AGGREGATE
请注意,如果更改参数/签名,这可能会引发错误,因此如果您这样做,则需要进行调整.
手动参考:https: //www.postgresql.org/docs/current/static/sql-dropaggregate.html
DO $$ BEGIN
CREATE AGGREGATE array_agg_mult(anyarray) (
SFUNC = array_cat,
STYPE = anyarray,
INITCOND = '{}'
);
EXCEPTION
WHEN duplicate_function THEN NULL;
END $$;
Run Code Online (Sandbox Code Playgroud)
似乎也有效。
| 归档时间: |
|
| 查看次数: |
1307 次 |
| 最近记录: |