【发布时间】:2014-08-22 21:06:06
【问题描述】:
我有一个查询,但由于有很多常量,我决定将此查询包装在一个存储函数中:
CREATE OR REPLACE FUNCTION get_events_without_overlaping()
RETURNS event
AS $$
WITH RECURSIVE group_events AS (...) select * from group_event; $$
LANGUAGE SQL;
并将此常量作为参数传递。当我运行这个函数时,我得到了一条记录,当我运行查询时,我得到了两条记录。怎么可能?
【问题讨论】:
-
您的函数可能有错误的返回类型。请显示功能。
-
我有一个名为 event 的表,我希望我的函数返回事件的记录
CREATE OR REPLACE FUNCTION get_events_without_overlaping() RETURNS event AS $$ WITH RECURSIVE group_events AS (...) select * from group_event; $$ LANGUAGE SQL -
你的函数应该返回
SETOF event。请参阅上面的链接。 -
你如何调用函数?
标签: postgresql stored-functions