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
Lepaskan: 2025-01-12 20:31:44
asal
555 orang telah melayarinya

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:

SELECT 'CREATE DATABASE mydb'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec
Salin selepas log masuk

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

Gunakan penyelesaian daripada shell:

Panggil psql menggunakan arahan berikut:

echo "SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec" | psql
Salin selepas log masuk

Gunakan penyelesaian dalam transaksi Postgres:

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

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$;
Salin selepas log masuk

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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan