私はテーブルが存在するかどうかをチェックする単純な関数をpostgresqlに書きたいと思います。 postgresqlのドキュメントでは、私の引数を$ plusのargで参照することができますが、関数の作成中にエラーが発生します。PostgreSQL - 関数でargsを使うことはできません
はここに私の関数である:関数内
CREATE OR REPLACE FUNCTION delete_if_exists(table_name text) RETURNS void
AS $$
BEGIN
IF EXISTS(SELECT * FROM $1)
THEN
delete from $1;
END IF;
RETURN;
END;
$$ LANGUAGE plpgsql;
パラメータをテーブル名として使用することはできません。動的SQLを使用する必要があります。https://www.postgresql.org/docs/current/static/plpgsql-statements.html#PLPGSQL-STATEMENTS-EXECUTING-DYN –