使用pgAdmin III,我想专门使用PL / pgSQL函数在我的postgres DB中创建表。以下命令集对我来说工作正常。
Create or Replace Function mk_tbl()
Returns Integer As $$
Declare
Begin
Drop Table if exists sel_streets;
Create Table sel_streets
(
id Integer,
Geom geometry
);
Create Index sel_streets_indx
ON sel_streets Using
gist (geom);
Return (1);
End $$ Language plpgsql volatile;
我通过这个命令调用该函数:
Select mk_tbl();
我的问题是每次调用此函数时,它都会在postgres DB中创建表,并返回“1”(在SQL编辑器输出面板中),这是不需要的。我知道最终一个函数应该返回一些东西,我也可以像这样使用void构造:
Create or Replace Function mk_tbl()
Returns Void As $$
...
但是,我想要的是调用这个函数,它只应该在我的potgres DB中创建表,而不应该返回任何内容。是否可以使用PL / pgSQL专门做到这一点?
答案 0 :(得分:1)
空结果有什么问题?
使用DO
语句可以执行您想要的操作:
DO LANGUAGE plpgsql $$BEGIN
PERFORM mk_tbl();
END;$$;