PostgreSQL: VOID, RAISE NOTICE, PERFORM, RETURNS NOTHING を使った関数作成
PostgreSQLで何も返さない関数を作成する方法
VOID を戻り値型として使用する
最も簡単な方法は、VOID
を戻り値型として使用するです。以下の例では、do_something
という名前の関数を作成し、何も返しません。
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- 何か処理を行う
-- 例:データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
RAISE NOTICE
を使用して、メッセージを出力し、何も返さない関数を作成することもできます。以下の例では、do_something
という名前の関数を作成し、'処理が完了しました'
というメッセージを出力します。
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- 何か処理を行う
-- 例:データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
-- メッセージを出力
RAISE NOTICE '処理が完了しました';
END;
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- 別の関数を呼び出す
PERFORM other_function();
END;
RETURNS NOTHING を使用する
PostgreSQL 10以降では、RETURNS NOTHING
を使用して、何も返さない関数を作成することもできます。以下の例では、do_something
という名前の関数を作成し、何も返しません。
CREATE FUNCTION do_something() RETURNS NOTHING
AS
BEGIN
-- 何か処理を行う
-- 例:データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
注意事項
- 戻り値型が
VOID
またはRETURNS NOTHING
の関数は、SELECT
ステートメントで使用できません。 RAISE NOTICE
を使用してメッセージを出力する場合は、NOTICE
ではなくWARNING
またはERROR
を使用することもできます。
VOID を戻り値型として使用する
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
-- 関数の呼び出し
SELECT do_something();
RAISE NOTICE を使用する
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
-- メッセージの出力
RAISE NOTICE '処理が完了しました';
END;
-- 関数の呼び出し
SELECT do_something();
PERFORM を使用する
CREATE FUNCTION do_something() RETURNS VOID
AS
BEGIN
-- 別の関数の呼び出し
PERFORM other_function();
END;
CREATE FUNCTION other_function() RETURNS VOID
AS
BEGIN
-- 何か処理を行う
-- 例:ログの出力
INSERT INTO ログテーブル (内容) VALUES ('処理が完了しました');
END;
-- 関数の呼び出し
SELECT do_something();
RETURNS NOTHING を使用する
CREATE FUNCTION do_something() RETURNS NOTHING
AS
BEGIN
-- データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
-- 関数の呼び出し
SELECT do_something();
これらのサンプルコードは、PostgreSQLで何も返さない関数を作成する方法を理解するのに役立つでしょう。
PostgreSQLで何も返さない関数を作成するその他の方法
RETURNS void
は RETURNS VOID
と同じ意味です。以下の例では、do_something
という名前の関数を作成し、何も返しません。
CREATE FUNCTION do_something() RETURNS void
AS
BEGIN
-- 何か処理を行う
-- 例:データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
LANGUAGE plpgsql
はデフォルトの言語なので、省略しても問題ありません。以下の例では、do_something
という名前の関数を作成し、何も返しません。
CREATE FUNCTION do_something() RETURNS VOID
AS $$
BEGIN
-- 何か処理を行う
-- 例:データベースの更新
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
$$;
DO
を使用して、単一のSQLステートメントからなる関数を作成できます。以下の例では、do_something
という名前の関数を作成し、UPDATE
ステートメントを実行します。
CREATE FUNCTION do_something() RETURNS VOID
AS $$
DO
UPDATE テーブル名 SET 列名 = 値 WHERE 条件;
END;
$$;
これらの方法は、上記で紹介した方法よりも簡潔に記述できます。
注意事項
RETURNS void
は PostgreSQL 9.0以降で使用できます。LANGUAGE plpgsql
を省略する場合は、関数の前に$$
と$$
を記述する必要があります。
database postgresql plpgsql