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:
<code class="language-sql">SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec</code>
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:
<code class="language-bash">echo "SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec" | psql</code>
Verwenden Sie Problemumgehungen in Postgres-Transaktionen:
Verwenden Sie dblink, um eine Verbindung zur aktuellen Datenbank herzustellen, um Transaktionsbeschränkungen zu vermeiden:
<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>
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!