CREATE DATABASE IF NOT EXISTS
PostgreSQL selbst unterstützt die CREATE DATABASE IF NOT EXISTS
-Syntax nicht nativ. Wie kann diese Funktion in PostgreSQL simuliert werden?
Problemumgehung in psql verwenden:
Verwenden Sie den Metabefehl gexec
, um die folgende bedingte Anweisung auszuführen:
SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec
Wenn die Datenbank mydb
nicht existiert, wird sie mit dieser Anweisung erstellt.
Verwenden Sie die Problemumgehung über die Shell:
Rufen Sie psql mit dem folgenden Befehl auf:
echo "SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec" | psql
Verwenden Sie Problemumgehungen in Postgres-Transaktionen:
Verwenden Sie dblink, um eine Verbindung zur aktuellen Datenbank herzustellen, um Transaktionsbeschränkungen zu vermeiden:
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$;
Das obige ist der detaillierte Inhalt vonWie simuliere ich „Datenbank erstellen, wenn nicht vorhanden' in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!