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:
SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec
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
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$;
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!