Maison >base de données >tutoriel mysql >Comment simuler « CRÉER UNE BASE DE DONNÉES SI NON EXISTE » dans PostgreSQL ?
CREATE DATABASE IF NOT EXISTS
PostgreSQL lui-même ne prend pas en charge nativement la syntaxe CREATE DATABASE IF NOT EXISTS
Comment simuler cette fonctionnalité dans PostgreSQL ?
Utiliser une solution de contournement dans psql :
Utilisez la métacommande gexec
pour exécuter l'instruction conditionnelle suivante :
<code class="language-sql">SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec</code>
Si la base de données mydb
n'existe pas, cette instruction la créera.
Utiliser la solution de contournement depuis le shell :
Invoquez psql à l'aide de la commande suivante :
<code class="language-bash">echo "SELECT 'CREATE DATABASE mydb' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'mydb')\gexec" | psql</code>
Utiliser des solutions de contournement dans les transactions Postgres :
Utilisez dblink pour vous reconnecter à la base de données actuelle afin d'éviter les limites de transactions :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!