pgAdmin IIIを使用して、PL/pgSQL関数を使用して私のpostgres DBにテーブルを作成します。次の一連のコマンドは、私の仕事をうまくやってくれます。plggqlを使用して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にエディタの出力パネル)を使用します。
Create or Replace Function mk_tbl()
Returns Void As $$
...
をしかし、私がしたいことだけDB私potgresでテーブルを作成する必要がありますし、何も返さない必要があり、この関数を呼び出すことです。このように構築し、私は最終的には機能が何かを返す必要があることを認識していますし、私はまた、ボイド使用することができます。 PL/pgSQLを使ってこれを行うことは可能ですか?
は、ストアドプロシージャを「本物」です。残念なことに、Postgresはそれらをサポートしていないので、 'returns void'を使う必要があります。(無関係:言語名は識別子です。一重引用符で囲まないでください:' language plpgsql'を使うべきです)。 –
performがあなたを助けないかどうかわかりません - 'do $$ begin mk_tbl()を実行します;終了; $$; ' –
@a_horse_with_no_name:ありがとうございます。私はコードを編集しました。次に、PL/PythonまたはPL/Rを使用してこの関数を呼び出すと、これを行うことは可能ですか? –