Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mensimulasikan `BUAT PANGKALAN DATA JIKA TIDAK WUJUD` dalam PostgreSQL?

Bagaimana untuk Mensimulasikan `BUAT PANGKALAN DATA JIKA TIDAK WUJUD` dalam PostgreSQL?

Susan Sarandon
Susan Sarandonasal
2025-01-12 20:31:44493semak imbas

How to Simulate `CREATE DATABASE IF NOT EXISTS` in PostgreSQL?

Simulasi dalam PostgreSQLCREATE DATABASE IF NOT EXISTS

Soalan:

PostgreSQL sendiri tidak menyokong sintaks CREATE DATABASE IF NOT EXISTS secara asli Bagaimana untuk mensimulasikan ciri ini dalam PostgreSQL?

Penyelesaian:

Gunakan penyelesaian dalam psql:

Gunakan gexec metacommand untuk melaksanakan pernyataan bersyarat berikut:

<code class="language-sql">SELECT 'CREATE DATABASE mydb'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec</code>

Jika pangkalan data mydb tidak wujud, pernyataan ini akan menciptanya.

Gunakan penyelesaian daripada shell:

Panggil psql menggunakan arahan berikut:

<code class="language-bash">echo "SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec" | psql</code>

Gunakan penyelesaian dalam transaksi Postgres:

Gunakan dblink untuk menyambung kembali ke pangkalan data semasa untuk mengelakkan had transaksi:

<code class="language-sql">DO
$do$
BEGIN
   IF EXISTS (SELECT FROM pg_database WHERE datname = 'mydb') THEN
      RAISE NOTICE '数据库已存在';  -- 可选
   ELSE
      PERFORM dblink_exec('dbname=' || current_database()  -- 当前数据库
                        , 'CREATE DATABASE mydb');
   END IF;
END
$do$;</code>

Atas ialah kandungan terperinci Bagaimana untuk Mensimulasikan `BUAT PANGKALAN DATA JIKA TIDAK WUJUD` dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn