Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mensimulasikan `BUAT PANGKALAN DATA JIKA TIDAK WUJUD` dalam PostgreSQL?
CREATE DATABASE IF NOT EXISTS
PostgreSQL sendiri tidak menyokong sintaks CREATE DATABASE IF NOT EXISTS
secara asli Bagaimana untuk mensimulasikan ciri ini dalam PostgreSQL?
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!