PostgreSQL: "CREATE TABLE IF NOT EXISTS" によるテーブル作成の処理
PostgreSQL では、"CREATE TABLE IF NOT EXISTS" を使用します。重複したテーブルが作成されるリスクを冒さずにテーブルを作成できます。この機能は PostgreSQL 9.1 で導入され、テーブルの存在を手動で確認することなく、確実にテーブルが存在するように簡単に作成できます。
PostgreSQL 9.1 以降の構文
PostgreSQL 9.1 以降のバージョンで「CREATE TABLE IF NOT EXISTS」を使用してテーブルを作成するには、次のようにします。コマンドを次のように指定します。
CREATE TABLE IF NOT EXISTS myschema.mytable ( i integer );
注: 「myschema」と「mytable」を目的のスキーマ名とテーブル名に置き換えます。
回避策古いバージョン
9.1 より前の PostgreSQL バージョンの場合、回避策関数を使用して同様の機能を実現できます。次の関数を作成します:
CREATE OR REPLACE FUNCTION create_mytable() RETURNS void LANGUAGE plpgsql AS $func$ BEGIN IF EXISTS (SELECT FROM pg_catalog.pg_tables WHERE schemaname = 'myschema' AND tablename = 'mytable') THEN RAISE NOTICE 'Table myschema.mytable already exists.'; ELSE CREATE TABLE myschema.mytable (i integer); END IF; END $func$;
必要に応じて関数を呼び出します:
SELECT create_mytable();
注:
以上がテーブル重複エラーを発生させずに PostgreSQL テーブルを安全に作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。