PostgreSQL で条件付きテーブルを作成する
MySQL では、CREATE TABLE IF NOT EXISTS 構文を使用すると、テーブルが存在しない場合にのみテーブルを作成できます。すでに存在しています。これにより、スクリプトを複数回実行するときに誤ってテーブルが再作成されることが防止されます。
PostgreSQL 9.1 以降
PostgreSQL 9.1 では、MySQL と同じ機能が導入されました:
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
PostgreSQL 以前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 サイトの他の関連記事を参照してください。