使用 plpgsql 函数在 postgres DB 中创建表

Creating tables in postgres DB using plpgsql fucntion

使用 pgAdmin III,我想专门使用 PL/pgSQL 函数在我的 postgres 数据库中创建表。以下一组命令对我来说很好。

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 中创建表,并且 returns '1'(在 SQL 编辑器输出面板中)是不需要的。我知道最终一个函数应该 return 一些东西,我也可以像这样使用 void 构造:

Create or Replace Function mk_tbl()
Returns Void As $$
...

但是,我想要的是调用此函数,它应该只在我的 potgres 数据库中创建表,并且 return 什么都不应该。是否可以专门使用 PL/pgSQL 来做到这一点?

空结果有什么问题?

使用 DO 语句即可满足您的要求:

DO LANGUAGE plpgsql $$BEGIN
   PERFORM mk_tbl();
END;$$;