PostgreSQL の「CREATE TABLE IF NOT EXISTS」によるテーブルの作成
テーブルが存在しない場合にのみテーブルを作成する機能は、スクリプトが複数回実行された場合でも、テーブルが 1 回だけ作成されるようにするための便利な機能
MySQL では、この機能は次のステートメントを使用して実装できます。
CREATE TABLE IF NOT EXISTS foo ...;
PostgreSQL
PostgreSQL バージョン 9.1 以降では、 「CREATE TABLE IF NOT EXISTS」の構文は次のとおりです。サポートされている:
CREATE TABLE IF NOT EXISTS myschema.mytable (i integer);
古いバージョンの回避策
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$;
この関数は、テーブルを作成するために複数回呼び出すことができます。
注:
以上がPostgreSQL にテーブルが存在しない場合にのみテーブルを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。